From: Ian Lynagh Date: Sun, 10 Aug 2008 14:20:26 +0000 (+0000) Subject: Make "make clean" in compiler/ only clean the stage we want to clean X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=5a82864902fc01cf8eee847fcf4ee88e74aa535d Make "make clean" in compiler/ only clean the stage we want to clean If you "make clean" in the root then we still clean all stages --- diff --git a/compiler/Makefile b/compiler/Makefile index c0f703e..ca3f96e 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -56,12 +56,6 @@ stage3 :: $(MAKE) stage=3 clean distclean:: - -$(CABAL) clean --distpref dist-stage1 - -$(CABAL) clean --distpref dist-stage2 - -$(CABAL) clean --distpref dist-stage3 - $(RM) -f Makefile-stage1 - $(RM) -f Makefile-stage2 - $(RM) -f Makefile-stage3 $(RM) -f prelude/primops.txt $(RM) -f $(PRIMOP_BITS) $(RM) -f $(CONFIG_HS) @@ -69,6 +63,16 @@ clean distclean:: $(RM) -rf stage1 stage2plus $(RM) -f $(STAGE3_PACKAGE_CONF) +ifeq "$(CLEAN_ALL_STAGES)" "YES" +clean distclean:: clean.stage.1 clean.stage.2 clean.stage.3 +else +clean distclean:: clean.stage.$(stage) +endif + +clean.stage.%: + -$(CABAL) clean --distpref dist-stage$* + $(RM) -f Makefile-stage$* + CONFIGURE_FLAGS_STAGE1 += --flags=stage1 CONFIGURE_FLAGS_STAGE2 += --flags=-stage1 diff --git a/mk/recurse.mk b/mk/recurse.mk index 906b1f0..2bb370d 100644 --- a/mk/recurse.mk +++ b/mk/recurse.mk @@ -76,7 +76,7 @@ $(ALL_TARGET) docs runtests $(BOOT_TARGET) TAGS clean distclean mostlyclean main echo "== $(MAKE) $@ $(MFLAGS);"; \ echo " in $(shell pwd)/$$i"; \ echo "------------------------------------------------------------------------"; \ - $(MAKE) --no-print-directory -C $$i $(MFLAGS) $@; \ + $(MAKE) --no-print-directory -C $$i $(MFLAGS) $@ CLEAN_ALL_STAGES=YES; \ if [ $$? -eq 0 -o $$x_on_err -eq 0 ]; \ then echo "Finished making $@ in $$i": $$?; \ else echo "Failed making $@ in $$i": $$?; exit 1; \