On Fri, 2006-Jan-20 16:54:33 -0500, Sergey Babkin wrote:
>Kris Kennaway wrote:
>> It's harder than that, because you need to impose dependency
>> information and mutual exclusion between different makes.  e.g. they
>> can't both be compiling the same port at the same time, which will
>> happen if you just do the naive thing.
>
>That's the part that "make -j" is supposed to take care of,
>since it should build in parallel only the targets independent
>of each other.

It doesn't quite work like that.  A single make execution will
correctly parallelize independent targets (as long as the makefile
dependency tree is correct - which is not true for all ports).  The
problem occurs when the targets are sub-makes.  In this case, you
have multiple sub-makes running in parallel with no knowledge of
the dependency trees of the other sub-makes.  Unless the top-level
makefile has full knowledge of all the dependencies (which is not
practical), it is quite likely that the sub-makes will collide.

-- 
Peter Jeremy
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to