summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2009-05-15 23:15:16 +0000
committerIan Lynagh <igloo@earth.li>2009-05-15 23:15:16 +0000
commite257cdbf9c13fc8dedacc7c468c30fba3e89009b (patch)
tree76db90bd377f14577d6134f9ad50cc1e56624d8d
parentcc6b470ed8fe0494148b1629f30d7ae878ee25be (diff)
downloadhaskell-e257cdbf9c13fc8dedacc7c468c30fba3e89009b.tar.gz
Don't require the library ghc.mk files in order to clean
-rw-r--r--Makefile10
-rw-r--r--ghc.mk24
2 files changed, 21 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index d0f52b93a6..af669d7f8f 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 f25163588e..f77f9eb8e1 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