Subject: Re: patches to fix make -j
To: James Chacon <jmc@NetBSD.org>
From: Todd Vierling <email@example.com>
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 <firstname.lastname@example.org> <email@example.com>