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

Reply via email to