On Sun, Mar 6, 2011 at 00:51, Jim Ursetto <[email protected]> wrote:
> Mario,
> My guess is that you did
>  make -j2 spotless all
>
> which causes some of the rm's from spotless to overlap the beginning of the 
> build.

OK, try this patch instead.  It addresses your problem, and also fixes
some assumptions in the boot-chicken: target which could show up under
high -j.

Jim
diff --git a/GNUmakefile b/GNUmakefile
index 9bc40ca..c697f14 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -49,6 +49,9 @@ STANDARD_TARGETS \
          fullcheck libs install-target install-dev bench
 
 .PHONY: $(STANDARD_TARGETS) dist boot-chicken
+# Build this file's targets sequentially.  This avoids executing overlapping
+# makes if the user specifies multiple targets.
+.NOTPARALLEL:
 
 $(STANDARD_TARGETS):
        $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) CONFIG=$(CONFIG) $@
diff --git a/rules.make b/rules.make
index 521a801..8d932cb 100644
--- a/rules.make
+++ b/rules.make
@@ -242,8 +242,8 @@ lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A): 
$(APPLY_HACK_OBJECT) $(LIBCHIC
 
 # import libraries and extensions
 
-%.so: %.o
-       $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $^ 
$(LINKER_OUTPUT_OPTION) $@ \
+%.so: %.o $(PRIMARY_LIBCHICKEN)
+       $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $< 
$(LINKER_OUTPUT_OPTION) $@ \
          
$(LINKER_LIBRARY_PREFIX)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(LINKER_LIBRARY_SUFFIX)
 \
          $(LIBRARIES)
 
@@ -544,9 +544,9 @@ chicken-profile.c: $(SRCDIR)chicken-profile.scm
        $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
 chicken-install.c: $(SRCDIR)chicken-install.scm setup-download.c setup-api.c
        $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
-chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm
+chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm setup-api.c
        $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
-chicken-status.c: $(SRCDIR)chicken-status.scm
+chicken-status.c: $(SRCDIR)chicken-status.scm setup-api.c
        $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
 csc.c: $(SRCDIR)csc.scm
        $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
@@ -642,14 +642,17 @@ buildhead:
 .PHONY: boot-chicken
 
 boot-chicken:
+       $(MAKE) -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= confclean
        $(MAKE) -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) PREFIX=/nowhere 
CONFIG= \
          SRCDIR=$(SRCDIR) CHICKEN=$(CHICKEN) PROGRAM_SUFFIX=-boot-stage1 
STATICBUILD=1 \
          C_COMPILER_OPTIMIZATION_OPTIONS= C_HACKED_APPLY= \
-         confclean chicken-boot-stage1$(EXE)
+         chicken-boot-stage1$(EXE)
+       $(MAKE) -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= touchfiles
        $(MAKE) -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) PREFIX=/nowhere 
CONFIG= \
          SRCDIR=$(SRCDIR) CHICKEN=`pwd`/chicken-boot-stage1$(EXE) 
PROGRAM_SUFFIX=-boot \
          STATICBUILD=1 C_COMPILER_OPTIMIZATION_OPTIONS= \
-         touchfiles chicken-boot$(EXE) confclean
+         chicken-boot$(EXE)
+       $(MAKE) -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= confclean
 
 .PHONY: touchfiles
 
_______________________________________________
Chicken-hackers mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to