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