Subject: Re: patches to fix make -j
To: James Chacon <jmc@NetBSD.org>
From: Todd Vierling <tv@duh.org>
List: tech-toolchain
Date: 12/18/2003 09:43:05
On Wed, 17 Dec 2003, James Chacon wrote:

: > Proper Makefile dependency ordering has zero need for .WAIT and will work
: > properly under -j (provided -j works as advertised).  At the time .WAIT was
: > being sprinkled all over the place, I offered to fix <bsd.subdir.mk> to
: > allow for specification of dependency ordering as an alternative to .WAIT,
: > but no one seemed to care.
:
: The only way this works is if
:
: SUBDIRS= a b c
:
: enforce that all of a is built before b or c starts. That effectively reduces
: parallelism possibilities as each sub-dir make has to be done sequentially.

I had, at one time, a patch that let you do something like

SUBDIRS=	a b:a c:a d e:b

which was indeed parallelizable, and guaranteed that b/c came after a, and e
came after b for the operations "all", "depend", "dependall", and
"includes".  This was quite useful in such directories as
src/gnu/usr.bin/gcc, src/gnu/usr.bin/binutils, src/gnu/libexec/uucp, etc.
It also demonstrated well how these things can be expressed as make
dependencies rather than the hacky .WAIT turnstile.

But as I said, .WAIT seems to be the favorite.  <sigh>

-- 
-- Todd Vierling <tv@duh.org> <tv@pobox.com>