On Tue, 2009-03-24 at 16:02 -0400, Coleman Kane wrote: > On Tue, 2009-03-24 at 12:43 -0700, Doug Barton wrote: > > Question, > > > > I'm testing my ports for MAKE_JOBS_SAFE-ness, and came across this > > message when building xscreensaver (which uses gmake): > > > > gmake[1]: warning: jobserver unavailable: using -j1. Add `+' to > > parent make rule. > > > > I have zero gmake fu, can anyone help me make sense of that? The good > > news is that the build finished successfully ... > > > > > > Doug > > > > I'll give it a stab, as I've dealt with this when trying to write a "one > makefile to rule them all" build system recently (in other words, I > maintain a collection of 200+ packages and my makefile attempts to call > $(MAKE) within those subdirectories). > > The GNU make process for some reason was not able to determine the type > of your "make" that was used for building a target of the following > flavor: > > mytarget: deps dep2 ... > $(MAKE) -C $(mytargetdir) mytarget > > Supposedly, GNU make is supposed to recognize that $(MAKE) above is a > "make program" and not a "normal program" (such as install, BSD make, > sed, etc....). In the event that it is calling a compatible GNU make > program, it can (through some means I don't fully understand) provide > access to its job pool to the "child" (the make process that will be > executed in the target above). This allows, for instance, you to pass -j > 4 to the parent make process, and it will guarantee that no more than > four jobs get run, even if there are subdirs-within-subdirs, etc.... > > Something is preventing this detection from succeeding in your case. I > see this a lot as well (in my own make system), but I've chosen to > ignore it in my environment. I think, in my case, that I am using > $(MAKE) within an $(eval ...) block and the $(MAKE) gets expanded before > the $(eval ...) does, making the GNU make program actually see something > like this, before it actually builds the target list: > mytarget: deps dep2 ... > /usr/local/bin/gmake -C $(mytargetdir) mytarget > > Which may confuse it. > > Here's a link to the ambiguous description on the GNU make website: > http://www.gnu.org/software/automake/manual/make/Error-Messages.html > >
Additionally: http://lists.samba.org/archive/distcc/2004q1/002160.html -- Coleman Kane
signature.asc
Description: This is a digitally signed message part