From: Paul Brannan Date: 2008-04-02T23:35:31+09:00 Subject: Re: [PATCH] fix build with -j On Wed, Apr 02, 2008 at 10:13:59AM +0900, Nobuyoshi Nakada wrote: > At Tue, 1 Apr 2008 23:36:47 +0900, > Paul Brannan wrote in [ruby-core:16102]: > > make: *** Waiting for unfinished jobs.... > > It works for me, with GNU make 3.81. Are you starting with a clean checkout? > > -encs: enc.mk > > +encs: enc.mk $(PREP) > > $(MINIRUBY) -run -e mkdir -- -p "$(EXTOUT)/$(arch)/enc/trans" enc/trans > > $(MAKE) -f enc.mk $(MFLAGS) > > > > enc.mk: $(srcdir)/enc/make_encmake.rb $(srcdir)/enc/Makefile.in $(srcdir)/enc/depend \ > > - $(srcdir)/lib/mkmf.rb $(RBCONFIG) > > + $(srcdir)/lib/mkmf.rb $(RBCONFIG) $(PREP) > > $(MINIRUBY) $(srcdir)/enc/make_encmake.rb --builtin-encs="$(BUILTIN_ENCOBJS)" $@ > > $(RBCONFIG) already depends on $(PREP). Ok, missed this. Still, the extra dependency doesn't hurt anything and makes the dependency more explicit. > > -encdb.h: > > +encdb.h: $(PREP) > > $(MINIRUBY) $(srcdir)/enc/make_encdb.rb $(srcdir)/enc $@ > > encdb.h and transdb.h don't depend on $(PREP) to get rid of > recompiling encoding.c and transcode.c always. encdb and > transdb are used as dependencies instead. Hmm, I see. There still seems to be some dependency problem with encdb.h, however. There are two targets that depend directly on encdb.h: incs depends on encdb.h prereq depends on incs nothing seems to depend on prereq encoding.$(OBJEXT) depends on encdb.h the OBJS variable includes encoding.$(OBJEXT) PROGRAM, LIBRUBY_A, and LIBRUBY_SO depend on $(OBJS) Since incs is a dead-end, the problem lies with encoding.$(OBJEXT). Should it be made to depend on encdb instead of encdb.h? Paul