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
@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)
# -----------------------------------------------------------------------------
# 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)
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) \
.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
$(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