|
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
[Prev in Thread] | Current Thread | [Next in Thread] |