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.

Reply via email to