Cristophe, Thanks for continuing the work that I haven't had the time to finish. I have a few comments, though:
1. This patch is subject to the same deficiencies as I mentioned at http://lists.gnu.org/archive/html/help-make/2006-04/msg00152.html, but in other way: in that example, when one runs "make -j b a", the jobs updating "x1" and "x2" are started in parallel. The rule in makefile, however, requests serialization of "x1" and "x2". 2. The .WAIT semantics you implemented differs from its origins in BSD make: it waits for *all* dependencies preceding .WAIT, not for the last one. Note that it is not equivalent to placing .WAIT between each and every dependency. 3. BSD make associates the .WAIT semantics with a target, not with a dependency. While being a slight difference, it could be a nuisance to those with BSD make "background". In the message mentioned above I described how .WAIT is implemented in BSD make; that seems to be the "right" approach. However, it is a large change - that I haven't had the time to implement, unfortunately. Regards, Alexey. On Tuesday 05 December 2006 00:17, Christophe Lyon wrote: > Hi all, > > Following a thread earlier this year > (http://lists.gnu.org/archive/html/help-make/2006-04/msg00014.html> > I have decided to work myself, and I propose a patch as attached to > this email. > > It is based upon work from Alexey Neyman (see > http://lists.gnu.org/archive/html/help-make/2005-04/msg00087.html). > > In summary, it adds a news special dependency '.WAIT' which is used > to stop parallelization: any of the dependencies _after_ .WAIT wait > for the dependency before .WAIT before starting to be updated. (Note > that they wait only for the dependency immediately before .WAIT, not > for all the preceding ones). > > Attached is a simple test Makefile to show the results. > > I would like to get your feedback/comments on this patch. > > Best regards, > > Christophe. > -- Of course, as a loving parent I must push you from the nest. -- Pkunks, SC2 _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
