The man page mentions the chapter "Problems and Bugs."
This chapter does not appear in the table of contents of"The GNU Make
Manual," I found the reference in the chapter "Overview."
It is possible to confuse make by specifying multiple targets combined
with the '-j' switch.
This is particularly evident with a command such as this:
make -j4 clean all install
The problem is that the 'clean' target makes things that may be built by
'all' vanish; if 'make clean' us still running when 'make all' starts,
make may get to the final stages (linking) and then find some object files
that were there now are not.
I argue that this is a reasonable way to use make; in general a user
should not need to know that making some targets makes others vanish. I
think make should cope with this, and that it would do some with a slight
loss of performance if it didn't start building a new target until all
previous targets are finished.
I think this logic MUST be applied to targets specified on the
commandline; I can imagine the same problem arising wrt targets specified
in Makefiles. but it may happen less often (but may be more confusing as
the person building the package would likely know nothing about the
Makefile contents...)
I suspect that the problem will arise more often now that user can get a
cheap dual-processor M/b (ABIT BP6) for a little more than any other slot
7 m/b and install two celerons rather than one. The advantage of saying
'-j2' to such people will be obvious;-)
--
Cheers
John Summerfield
http://os2.ami.com.au/os2/ for OS/2 support.
Configuration, networking, combined IBM ftpsites index.