Follow-up Comment #7, bug #17873 (project make): To answer Howard Chu: in very simple makefiles, dependencies could take care of the serial/parallel problem, but for complex makefiles they simply don't suffice.
Consider, for example, a makefile that builds 3 independent executables, exe1, exe2, and exe3. The only way to allow for the object files to be compiled in parallel, while linking the executables serially (linking is IO bound and massive parallel linking can lock up a machine), would be to introduce fake dependencies of this sort: exe1: exe2 exe2: exe3 This is all good (if you forget for now that these dependencies are completely bogus and thus a hack) as long as you always want to build everything. But since the dependencies are fake, problems arise easily. In this particular case, even if all you want to do is build 'exe1', you are *forced* to build exe2 and exe3 due to the bogus dependencies. Namely, make exe1 Will also build exe2 and exe3 for absolutely no good reason. Considering that some debug builds of executables I work on end up being 600MB, you can easily waste close to an hour on this, depending on the number of executables. A .NOTPARALLEL with decent semantics (not the current one) solves this problem the way it is supposed to be solved. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?17873> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make