~ chicken-core (chicken-5) 98e3c4d311cfd1ba901cc71303e77cee49d3eb07


commit 98e3c4d311cfd1ba901cc71303e77cee49d3eb07
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Apr 10 23:16:14 2010 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat Apr 10 23:16:14 2010 +0200

    added 3-stage build

diff --git a/rules.make b/rules.make
index 1c52b49f..80e9829c 100644
--- a/rules.make
+++ b/rules.make
@@ -1037,3 +1037,28 @@ testclean:
 
 check: $(CHICKEN_SHARED_EXECUTABLE) $(CSI_SHARED_EXECUTABLE) $(CSC_PROGRAM)
 	cd tests; sh runtests.sh
+
+
+# 3-stage build
+
+.PHONY: stage1 stage2 stage3
+
+stage1:
+	$(MAKE) -f $(SRCDIR)Makefile.$(PLATFORM) STATICBUILD=1 DEBUGBUILD=1 \
+	  CHICKEN=$(CHICKEN) confclean clean $(CHICKEN_PROGRAM)
+	$(COPY_COMMAND) $(CHICKEN_PROGRAM) $(CHICKEN_PROGRAM)-stage1$(EXE)
+	-chmod +x $(CHICKEN_PROGRAM)-stage1$(EXE)
+	-touch *.scm
+	$(MAKE) -f $(SRCDIR)Makefile.$(PLATFORM) stage2
+
+stage2:
+	$(MAKE) -f $(SRCDIR)Makefile.$(PLATFORM) STATICBUILD=1 DEBUGBUILD=1 \
+	  CHICKEN=./$(CHICKEN_PROGRAM)-stage1 clean $(CHICKEN_PROGRAM)
+	$(COPY_COMMAND) $(CHICKEN_PROGRAM) $(CHICKEN_PROGRAM)-stage2$(EXE)
+	-chmod +x $(CHICKEN_PROGRAM)-stage2$(EXE)
+	-touch *.scm
+	$(MAKE) -f $(SRCDIR)Makefile.$(PLATFORM) stage3
+
+stage3:
+	$(MAKE) -f $(SRCDIR)Makefile.$(PLATFORM) CONFIG=$(CONFIG) \
+	  CHICKEN=./$(CHICKEN_PROGRAM)-stage2 confclean clean all
Trap