From f50ef4da0b1a647e82dd122f6605a4166546b63e Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Fri, 3 Jul 2009 11:46:38 +0000 Subject: [PATCH] fix cleaning of libraries (now 'make clean' in libraries/* works again) --- ghc.mk | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ghc.mk b/ghc.mk index 165bdbc..ddd1187 100644 --- a/ghc.mk +++ b/ghc.mk @@ -905,12 +905,20 @@ clean_files : "$(RM)" $(RM_OPTS) $(CLEAN_FILES) .PHONY: clean_libraries +clean_libraries: $(patsubst %,clean_libraries/%_dist-install,$(PACKAGES) $(PACKAGES_STAGE2)) +clean_libraries: $(patsubst %,clean_libraries/%_dist-boot,$(BOOT_PKGS)) + clean_libraries: "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist, $(PACKAGES) $(PACKAGES_STAGE2)) - "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist-install, $(PACKAGES) $(PACKAGES_STAGE2)) - "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist-boot, $(PACKAGES) $(PACKAGES_STAGE2)) "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/*.buildinfo, $(PACKAGES) $(PACKAGES_STAGE2)) +# We have to define a clean target for each library manually, because the +# libraries/*/ghc.mk files are not included when we're cleaning. +ifeq "$(CLEANING)" "YES" +$(foreach lib,$(PACKAGES) $(PACKAGES_STAGE2),\ + $(eval $(call clean-target,libraries/$(lib),dist-install,libraries/$(lib)/dist-install))) +endif + distclean : clean "$(RM)" $(RM_OPTS) config.cache config.status config.log mk/config.h mk/stamp-h "$(RM)" $(RM_OPTS) mk/config.mk mk/are-validating.mk mk/project.mk @@ -921,6 +929,7 @@ distclean : clean "$(RM)" $(RM_OPTS) libraries/process/include/HsProcessConfig.h "$(RM)" $(RM_OPTS) libraries/unix/include/HsUnixConfig.h "$(RM)" $(RM_OPTS) libraries/old-time/include/HsTimeConfig.h + "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/config.log, $(PACKAGES) $(PACKAGES_STAGE2)) "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/config.status, $(PACKAGES) $(PACKAGES_STAGE2)) "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/include/Hs*Config.h, $(PACKAGES) $(PACKAGES_STAGE2)) -- 1.7.10.4