help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Link called only if all other actions are completed


From: grischka
Subject: Re: Link called only if all other actions are completed
Date: Fri, 08 Oct 2010 21:28:22 +0200
User-agent: Thunderbird 2.0.0.23 (Windows/20090812)

So in your example:

target1.so: file1.o file2.o file3.o ...
        $(LD) ...

target2.so: file4.o file5.o file6.o ...
        $(LD) ...

Make will start 5 jobs immediately:

        file1.o file2.o file3.o file4.o file5.o

Every time a job slot comes free, make will continue building .o's until
all three of the first .o's (file1.o, file2.o, file3.o) complete, then
it will run the link for target1.so with the next available job slot.

Does not happen.  Because gmake doesn't check the availability of a
job slot before it starts walking the dependency tree to decide what
to build next.  Tt will not go back and see whether after completion
of the last command it could now link something if it has already
decided to compile next file.o right before it noticed that it had
to wait.

So with the given example it will indeed call link only after all
other actions are already _started_ (not necessarily completed).

It is not incorrect behavior but is not entirely nice either, IMO.

--- grischka



reply via email to

[Prev in Thread] Current Thread [Next in Thread]