From e257cdbf9c13fc8dedacc7c468c30fba3e89009b Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Fri, 15 May 2009 23:15:16 +0000 Subject: [PATCH] Don't require the library ghc.mk files in order to clean --- Makefile | 10 ++++------ ghc.mk | 24 +++++++++++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index d0f52b9..af669d7 100644 --- a/Makefile +++ b/Makefile @@ -43,8 +43,6 @@ endif include mk/custom-settings.mk -# If the package ghc.mk files are missing, generate them. This means that -# repeating 'make maintainer-clean' works. PACKAGE_MK=libraries/base/ghc.mk $(PACKAGE_MK): sh boot-pkgs @@ -67,16 +65,16 @@ $(REALGOALS) all: $(PACKAGE_MK) @echo "===--- finished updating makefiles" $(MAKE) -r --no-print-directory -f ghc.mk $@ -binary-dist: $(PACKAGE_MK) +binary-dist: rm -f bindist-list $(MAKE) -r --no-print-directory -f ghc.mk bindist BINDIST=YES $(MAKE) -r --no-print-directory -f ghc.mk binary-dist -clean distclean maintainer-clean: $(PACKAGE_MK) - $(MAKE) -r --no-print-directory -f ghc.mk $@ +clean distclean maintainer-clean: + $(MAKE) -r --no-print-directory -f ghc.mk $@ CLEANING=YES test ! -d testsuite || $(MAKE) -C testsuite $@ -$(filter clean_%, $(MAKECMDGOALS)) : clean_% : $(PACKAGE_MK) +$(filter clean_%, $(MAKECMDGOALS)) : clean_% : $(MAKE) -r --no-print-directory -f ghc.mk $@ show: $(PACKAGE_MK) diff --git a/ghc.mk b/ghc.mk index f251635..f77f9eb 100644 --- a/ghc.mk +++ b/ghc.mk @@ -134,9 +134,7 @@ show: # ----------------------------------------------------------------------------- # Include subsidiary build-system bits -ifneq "$(findstring clean,$(MAKECMDGOALS))" "" --include mk/config.mk -else +ifeq "$(findstring clean,$(MAKECMDGOALS))" "" include mk/config.mk ifeq "$(ProjectVersion)" "" $(error Please run ./configure first) @@ -483,10 +481,15 @@ endif BUILD_DIRS += \ utils/haddock \ - utils/haddock/doc \ - $(patsubst %, libraries/%, $(PACKAGES)) \ - $(patsubst %, libraries/%, $(PACKAGES_STAGE2)) \ - libraries/dph \ + utils/haddock/doc + +ifneq "$(CLEANING)" "YES" +BUILD_DIRS += \ + $(patsubst %, libraries/%, $(PACKAGES) $(PACKAGES_STAGE2)) \ + libraries/dph +endif + +BUILD_DIRS += \ compiler \ $(GHC_HSC2HS_DIR) \ $(GHC_PKG_DIR) \ @@ -871,6 +874,9 @@ clean : clean_files .PHONY: clean_files clean_files : $(RM) $(CLEAN_FILES) + $(RM) -r $(patsubst %, libraries/%/dist, $(PACKAGES) $(PACKAGES_STAGE2)) + $(RM) -r $(patsubst %, libraries/%/dist-install, $(PACKAGES) $(PACKAGES_STAGE2)) + $(RM) -r $(patsubst %, libraries/%/dist-boot, $(PACKAGES) $(PACKAGES_STAGE2)) distclean : clean $(RM) config.cache config.status config.log mk/config.h mk/stamp-h @@ -882,6 +888,10 @@ distclean : clean $(RM) libraries/process/include/HsProcessConfig.h $(RM) libraries/unix/include/HsUnixConfig.h $(RM) libraries/old-time/include/HsTimeConfig.h + $(RM) $(patsubst %, libraries/%/config.log, $(PACKAGES) $(PACKAGES_STAGE2)) + $(RM) $(patsubst %, libraries/%/config.status, $(PACKAGES) $(PACKAGES_STAGE2)) + $(RM) $(patsubst %, libraries/%/include/Hs*Config.h, $(PACKAGES) $(PACKAGES_STAGE2)) + $(RM) -r $(patsubst %, libraries/%/autom4te.cache, $(PACKAGES) $(PACKAGES_STAGE2)) maintainer-clean : distclean $(RM) configure mk/config.h.in -- 1.7.10.4