On Tue, 2006-12-12 at 14:03 +0000, Brendan Heading wrote:

> > Sure, it's not difficult to replace
> > all: all-subdir all-local
> > by
> > all:
> >    $(MAKE) all-subdir
> >    $(MAKE) all-local 

> BTW your example won't build those two targets in parallel, even if parallel 
> compilation is possible.

Right; that's the entire point: he's trying to AVOID having those
targets built in parallel.  He wants all the subdirs built before any of
the local files.

> I'd consider the way you've done this to be bad practice. Instead I'd
> have 
> 
> all: all-subdir all-local 
> 
> .PHONY all-subdir all-local 
> 
> all-subdir:
>    $(MAKE) <whatever> 
> 
> all-local:
>    $(MAKE) <whatever2> 
> 
> If I wanted to make it clear that these had to be serialized, I'd just add 
> 
> all-local: all-subdir 
> 
> I find that prettier than the .WAIT syntax.

Yes, but as we've been pointing out this is not sufficient.  If you read
the threads from last spring mentioned previously they go into this.
Remember that these are not just single targets: all-subdir and
all-local have prerequisites as well:

        all-local: foo.o bar.o baz biz boz

etc.  In that case your simple declaration:

        all-local: all-subdir

is NOT ENOUGH.  It just says the all-local target itself has to wait for
all-subdir, but it does NOT say anything about all-local's
prerequisites.  So that means that foo.o, bar.o, etc. can still be built
in parallel to all-subdirs, which is clearly wrong.  The only way to fix
this is to have ALL prerequisites of all-local (and all their
prerequisites, and all their prerequisites, etc.) also depend on
all-subdirs.  Bleah.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist


_______________________________________________
Help-make mailing list
Help-make@gnu.org
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to