White space only
[ghc-hetmet.git] / ghc.mk
diff --git a/ghc.mk b/ghc.mk
index 61e17ee..84c3774 100644 (file)
--- a/ghc.mk
+++ b/ghc.mk
 
 # ToDo List.
 #
-# Before we can merge the new build system into HEAD:
-#
 #   * finish installation
 #     * other documentation
 #     * create doc index and contents
 #     * Windows: should we have ghc-pkg-<version>?
 #     * should we be stripping things?
 #     * install libgmp.a, gmp.h
-#   * finish binary distributions
 #   * need to fix Cabal for new Windows layout, see
 #     Distribution/Simple/GHC.configureToolchain.
-#
-# Once the new build system is in HEAD, and before 6.12:
-#
-#   * separate the logic of whether to do something from the test for
-#     existence of the tool to do it. For example, rather than checking
-#     if $DIR_DOCBOOK_XSL or $XSLTPROC is "", we should have a variable
-#     for controlling the building of the docs.
 #   * remove old Makefiles, add new stubs for building in subdirs
 #     * utils/hsc2hs/Makefile
 #     * utils/haddock/Makefile
@@ -45,7 +35,6 @@
 #   * GhcProfiled
 #   * optionally install stage3?
 #   * shared libraries, way dyn
-#   * get HC bootstrapping working
 #   * add Makefiles for the rest of the utils/ programs that aren't built
 #     by default (need to exclude them from 'make all' too)
 #
@@ -213,6 +202,7 @@ include rules/c-sources.mk
 include rules/includes-sources.mk
 include rules/hs-objs.mk
 include rules/c-objs.mk
+include rules/cmm-objs.mk
 
 # -----------------------------------------------------------------------------
 # Suffix rules
@@ -237,6 +227,11 @@ $(foreach way,$(ALL_WAYS),\
 
 include rules/c-suffix-rules.mk
 
+#-----------------------------------------------------------------------------
+# CMM-related suffix rules
+
+include rules/cmm-suffix-rules.mk
+
 endif
 
 # -----------------------------------------------------------------------------
@@ -294,6 +289,7 @@ include rules/bindist.mk
 PACKAGES = \
        ghc-prim \
        integer-gmp \
+       integer \
        base \
        filepath \
        array \
@@ -315,7 +311,6 @@ PACKAGES += \
        extensible-exceptions \
        haskell98 \
        hpc \
-       packedstring \
        pretty \
        syb \
        template-haskell \
@@ -353,10 +348,6 @@ OTHER_LIBS = libffi/libHSffi$(v_libsuf) libffi/HSffi.o
 ifeq "$(BuildSharedLibs)" "YES"
 OTHER_LIBS  += libffi/libHSffi$(dyn_libsuf)
 endif
-ifeq "$(HaveLibGmp)" "NO"
-GMP_LIB = gmp/libgmp.a
-OTHER_LIBS += $(GMP_LIB)
-endif
 
 # We cannot run ghc-cabal to configure a package until we have
 # configured and registered all of its dependencies.  So the following
@@ -414,11 +405,11 @@ endef
 PRIMOPS_TXT = $(GHC_COMPILER_DIR)/prelude/primops.txt
 
 libraries/ghc-prim/dist-install/build/GHC/PrimopWrappers.hs : $(GENPRIMOP_INPLACE) $(PRIMOPS_TXT)
-       $(MKDIRHIER) $(dir $@)
-       $(GENPRIMOP_INPLACE) --make-haskell-wrappers <$(PRIMOPS_TXT) >$@
+       "$(MKDIRHIER)" $(dir $@)
+       "$(GENPRIMOP_INPLACE)" --make-haskell-wrappers <$(PRIMOPS_TXT) >$@
 
 libraries/ghc-prim/GHC/Prim.hs : $(GENPRIMOP_INPLACE) $(PRIMOPS_TXT)
-       $(GENPRIMOP_INPLACE) --make-haskell-source <$(PRIMOPS_TXT) >$@
+       "$(GENPRIMOP_INPLACE)" --make-haskell-source <$(PRIMOPS_TXT) >$@
 
 
 # -----------------------------------------------------------------------------
@@ -467,7 +458,6 @@ BUILD_DIRS += \
 endif
 
 BUILD_DIRS += \
-   gmp \
    docs/users_guide \
    libraries/Cabal/doc \
    $(GHC_UNLIT_DIR) \
@@ -512,6 +502,7 @@ endif
 endif
 
 BUILD_DIRS += \
+   libraries/integer-gmp/gmp \
    compiler \
    $(GHC_HSC2HS_DIR) \
    $(GHC_PKG_DIR) \
@@ -575,6 +566,10 @@ $(foreach pkg,$(PACKAGES_STAGE2),$(eval libraries/$(pkg)_dist-install_HC_OPTS +=
 # out the ones it thinks aren't supported.
 libraries/base3-compat_dist-install_HC_OPTS += -XPackageImports
 
+# A useful pseudo-target
+.PHONY: stage1_libs
+stage1_libs : $(ALL_STAGE1_LIBS)
+
 # -----------------------------------------------------------------------------
 # Bootstrapping libraries
 
@@ -628,20 +623,20 @@ $(INPLACE)/stamp-mingw : $(MKDIRHIER)
        $(MKDIRHIER) $(INPLACE_MINGW)/bin
        GCC=`type -p $(WhatGccIsCalled)`; \
        GccDir=`dirname $$GCC`; \
-       $(CP) -p $$GccDir/{gcc.exe,ar.exe,as.exe,dlltool.exe,dllwrap.exe,windres.exe} $(INPLACE_MINGW)/bin; \
-       $(CP) -Rp $$GccDir/../include $(INPLACE_MINGW); \
-       $(CP) -Rp $$GccDir/../lib     $(INPLACE_MINGW); \
-       $(CP) -Rp $$GccDir/../libexec $(INPLACE_MINGW); \
-       $(CP) -Rp $$GccDir/../mingw32 $(INPLACE_MINGW)
+       "$(CP)" -p $$GccDir/{gcc.exe,ar.exe,as.exe,dlltool.exe,dllwrap.exe,windres.exe} $(INPLACE_MINGW)/bin; \
+       "$(CP)" -Rp $$GccDir/../include $(INPLACE_MINGW); \
+       "$(CP)" -Rp $$GccDir/../lib     $(INPLACE_MINGW); \
+       "$(CP)" -Rp $$GccDir/../libexec $(INPLACE_MINGW); \
+       "$(CP)" -Rp $$GccDir/../mingw32 $(INPLACE_MINGW)
        touch $(INPLACE)/stamp-mingw
 
 install : install_mingw
 .PHONY: install_mingw
 install_mingw : $(INPLACE_MINGW)
-       $(CP) -Rp $(INPLACE_MINGW) $(prefix)
+       "$(CP)" -Rp $(INPLACE_MINGW) $(prefix)
 
 $(INPLACE_LIB)/perl.exe $(INPLACE_LIB)/perl56.dll :
-       $(CP) $(GhcDir)../{perl.exe,perl56.dll} $(INPLACE_LIB)
+       "$(CP)" $(GhcDir)../{perl.exe,perl56.dll} $(INPLACE_LIB)
 
 endif # Windows
 
@@ -651,13 +646,13 @@ libraries/ghc-prim/dist-install/doc/html/ghc-prim/ghc-prim.haddock: \
 
 libraries/ghc-prim/dist-install/build/autogen/GHC/Prim.hs: \
                             $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE) $(MKDIRHIER)
-       $(MKDIRHIER) $(dir $@)
-       $(GENPRIMOP_INPLACE) --make-haskell-source < $< > $@
+       "$(MKDIRHIER)" $(dir $@)
+       "$(GENPRIMOP_INPLACE)" --make-haskell-source < $< > $@
 
 libraries/ghc-prim/dist-install/build/autogen/GHC/PrimopWrappers.hs: \
                             $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE) $(MKDIRHIER)
-       $(MKDIRHIER) $(dir $@)
-       $(GENPRIMOP_INPLACE) --make-haskell-wrappers < $< > $@
+       "$(MKDIRHIER)" $(dir $@)
+       "$(GENPRIMOP_INPLACE)" --make-haskell-wrappers < $< > $@
 
 # -----------------------------------------------------------------------------
 # Installation
@@ -694,13 +689,13 @@ install_libs: $(INSTALL_LIBS)
        done
 
 install_libexec_scripts: $(INSTALL_LIBEXEC_SCRIPTS)
-       $(MKDIRHIER) $(DESTDIR)$(libexecdir)
+       "$(MKDIRHIER)" $(DESTDIR)$(libexecdir)
        for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
                $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i $(DESTDIR)$(libexecdir); \
        done
 
 install_libexecs:  $(INSTALL_LIBEXECS)
-       $(MKDIRHIER) $(DESTDIR)$(libexecdir)
+       "$(MKDIRHIER)" $(DESTDIR)$(libexecdir)
        for i in $(INSTALL_LIBEXECS); do \
                $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(DESTDIR)$(libexecdir); \
        done
@@ -723,17 +718,17 @@ endif
 
 install_packages: install_libexecs
 install_packages: libffi/package.conf.install rts/package.conf.install
-       $(MKDIRHIER) $(DESTDIR)$(libdir)
+       "$(MKDIRHIER)" $(DESTDIR)$(libdir)
        echo "[]" > $(INSTALLED_PACKAGE_CONF)
-       $(INSTALLED_GHC_PKG_REAL) --force --global-conf $(INSTALLED_PACKAGE_CONF) update libffi/package.conf.install
-       $(INSTALLED_GHC_PKG_REAL) --force --global-conf $(INSTALLED_PACKAGE_CONF) update rts/package.conf.install
+       "$(INSTALLED_GHC_PKG_REAL)" --force --global-conf $(INSTALLED_PACKAGE_CONF) update libffi/package.conf.install
+       "$(INSTALLED_GHC_PKG_REAL)" --force --global-conf $(INSTALLED_PACKAGE_CONF) update rts/package.conf.install
        $(foreach p, $(PACKAGES) $(PACKAGES_STAGE2),\
-           $(GHC_CABAL_INPLACE) install \
+           "$(GHC_CABAL_INPLACE)" install \
                 $(INSTALLED_GHC_PKG_REAL) \
                 $(INSTALLED_PACKAGE_CONF) \
                 libraries/$p dist-install \
                 '$(DESTDIR)' '$(prefix)' '$(libdir)' '$(docdir)/libraries' &&) true
-       $(GHC_CABAL_INPLACE) install \
+       "$(GHC_CABAL_INPLACE)" install \
                 $(INSTALLED_GHC_PKG_REAL) \
                 $(INSTALLED_PACKAGE_CONF) \
                 compiler stage2 \
@@ -769,21 +764,32 @@ $(eval $(call bindist,.,\
 # the bindist with a relative path
 
 binary-dist:
-       $(RM) -rf $(BIN_DIST_NAME)
+       "$(RM)" $(RM_OPTS) -r $(BIN_DIST_NAME)
        mkdir $(BIN_DIST_NAME)
-       set -e; for i in LICENSE compiler ghc rts libraries utils gmp docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh extra-gcc-opts.in ghc.mk inplace; do ln -s ../$$i $(BIN_DIST_NAME)/; done
+       set -e; for i in LICENSE compiler ghc rts libraries utils docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh extra-gcc-opts.in ghc.mk inplace; do ln -s ../$$i $(BIN_DIST_NAME)/; done
        ln -s ../distrib/configure-bin.ac $(BIN_DIST_NAME)/configure.ac
        cd $(BIN_DIST_NAME) && autoreconf
-       $(RM) -f $(BIN_DIST_TAR)
+       "$(RM)" $(RM_OPTS) $(BIN_DIST_TAR)
 # h means "follow symlinks", e.g. if aclocal.m4 is a symlink to a source
 # tree then we want to include the real file, not a symlink to it
-       $(TAR) hcf - -T $(BIN_DIST_LIST) | bzip2 -c >$(BIN_DIST_TAR_BZ2)
+       "$(TAR)" hcf - -T $(BIN_DIST_LIST) | bzip2 -c > $(BIN_DIST_TAR_BZ2)
+
+windows-binary-dist:
+       "$(RM)" $(RM_OPTS) -r $(BIN_DIST_NAME)
+       $(MAKE) prefix=$(BIN_DIST_DIR) install
+       "$(TAR)" cf - $(BIN_DIST_NAME) | bzip2 -c > $(BIN_DIST_TAR_BZ2)
+
+windows-installer:
+       "$(ISCC)" /O. /F$(WINDOWS_INSTALLER_BASE) - < distrib/ghc.iss
 
 nTimes = set -e; for i in `seq 1 $(1)`; do echo Try "$$i: $(2)"; if $(2); then break; fi; done
 
 .PHONY: publish-binary-dist
 publish-binary-dist:
        $(call nTimes,10,$(PublishCp) $(BIN_DIST_TAR_BZ2) $(PublishLocation)/dist)
+ifeq "$(mingw32_TARGET_OS)" "1"
+       $(call nTimes,10,$(PublishCp) $(WINDOWS_INSTALLER) $(PublishLocation)/dist)
+endif
 
 # -----------------------------------------------------------------------------
 # Source distributions
@@ -813,13 +819,14 @@ SRC_DIST_DIR=$(shell pwd)/$(SRC_DIST_NAME)
 #
 # Files to include in source distributions
 #
-SRC_DIST_DIRS = mk rules docs distrib bindisttest gmp libffi includes utils docs rts compiler ghc driver libraries
+SRC_DIST_DIRS = mk rules docs distrib bindisttest libffi includes utils docs rts compiler ghc driver libraries
 SRC_DIST_FILES += \
        configure.ac config.guess config.sub configure \
        aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \
-       ghc.spec.in ghc.spec extra-gcc-opts.in VERSION boot ghc.mk
+       ghc.spec.in ghc.spec extra-gcc-opts.in VERSION \
+       boot boot-pkgs packages ghc.mk
 
-SRC_DIST_TARBALL = ghc-$(ProjectVersion)-src.tar.bz2
+SRC_DIST_TARBALL = $(SRC_DIST_NAME)-src.tar.bz2
 
 VERSION :
        echo $(ProjectVersion) >VERSION
@@ -832,7 +839,7 @@ sdist : VERSION
 # "stage2" is the dist dir.
 sdist_file = \
   if test -f $(TOP)/$1/$2/build/$4.hs; then \
-    $(CP) $(TOP)/$1/$2/build/$4.hs $1/$3/ ; \
+    "$(CP)" $(TOP)/$1/$2/build/$4.hs $1/$3/ ; \
     mv $1/$3/$4.$5 $1/$3/$4.$5.source ;\
   else \
     echo "does not exist: $1/$2//build/$4.hs"; \
@@ -841,14 +848,14 @@ sdist_file = \
 
 .PHONY: sdist-prep
 sdist-prep :
-       $(RM) -rf $(SRC_DIST_DIR)
-       $(RM) $(SRC_DIST_NAME).tar.gz
+       "$(RM)" $(RM_OPTS) -r $(SRC_DIST_DIR)
+       "$(RM)" $(RM_OPTS) $(SRC_DIST_TARBALL)
        mkdir $(SRC_DIST_DIR)
        ( cd $(SRC_DIST_DIR) \
          && for i in $(SRC_DIST_DIRS); do mkdir $$i; (cd $$i && lndir $(TOP)/$$i ); done \
          && for i in $(SRC_DIST_FILES); do $(LN_S) $(TOP)/$$i .; done \
          && $(MAKE) distclean \
-         && if test -f $(TOP)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then $(CP) $(TOP)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; mv libraries/haskell-src/Language/Haskell/Parser.ly libraries/haskell-src/Language/Haskell/Parser.ly.source ; fi \
+         && if test -f $(TOP)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then "$(CP)" $(TOP)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; mv libraries/haskell-src/Language/Haskell/Parser.ly libraries/haskell-src/Language/Haskell/Parser.ly.source ; fi \
          && $(call sdist_file,compiler,stage2,cmm,CmmLex,x) \
          && $(call sdist_file,compiler,stage2,cmm,CmmParse,y) \
          && $(call sdist_file,compiler,stage2,main,ParsePkgConf,y) \
@@ -860,13 +867,13 @@ sdist-prep :
          && $(call sdist_file,utils/hpc,dist,,HpcParser,y) \
          && $(call sdist_file,utils/genprimopcode,dist,,Lexer,x) \
          && $(call sdist_file,utils/genprimopcode,dist,,Parser,y) \
-         && $(RM) -rf compiler/stage[123] mk/build.mk \
-         && $(FIND) $(SRC_DIST_DIRS) \( -name _darcs -o -name SRC -o -name "autom4te*" -o -name "*~" -o -name ".cvsignore" -o -name "\#*" -o -name ".\#*" -o -name "log" -o -name "*-SAVE" -o -name "*.orig" -o -name "*.rej" -o -name "*-darcs-backup*" \) -print | xargs $(RM) -rf \
+         && "$(RM)" $(RM_OPTS) -r compiler/stage[123] mk/build.mk \
+         && "$(FIND)" $(SRC_DIST_DIRS) \( -name _darcs -o -name SRC -o -name "autom4te*" -o -name "*~" -o -name ".cvsignore" -o -name "\#*" -o -name ".\#*" -o -name "log" -o -name "*-SAVE" -o -name "*.orig" -o -name "*.rej" -o -name "*-darcs-backup*" \) -print | xargs "$(RM)" $(RM_OPTS) -r \
        )
 
 .PHONY: sdist
 sdist : sdist-prep
-       $(TAR) chf - $(SRC_DIST_NAME) 2>$src_log | bzip2 >$(TOP)/$(SRC_DIST_TARBALL)
+       "$(TAR)" chf - $(SRC_DIST_NAME) 2>$src_log | bzip2 >$(TOP)/$(SRC_DIST_TARBALL)
 
 sdist-manifest : $(SRC_DIST_TARBALL)
        tar tjf $(SRC_DIST_TARBALL) | sed "s|^ghc-$(ProjectVersion)/||" | sort >sdist-manifest
@@ -894,43 +901,48 @@ CLEAN_FILES += utils/ghc-pwd/ghc-pwd.hi
 CLEAN_FILES += utils/ghc-pwd/ghc-pwd.o
 CLEAN_FILES += libraries/bootstrapping.conf
 
-clean : clean_files
+clean : clean_files clean_libraries
+
 .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))
+       "$(RM)" $(RM_OPTS) $(CLEAN_FILES)
+
+.PHONY: clean_libraries
+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))
 
 distclean : clean
-       $(RM) config.cache config.status config.log mk/config.h mk/stamp-h
-       $(RM) mk/config.mk mk/are-validating.mk mk/project.mk
-       $(RM) extra-gcc-opts docs/users_guide/ug-book.xml
-       $(RM) compiler/ghc.cabal ghc/ghc-bin.cabal
-       $(RM) libraries/base/include/HsBaseConfig.h
-       $(RM) libraries/directory/include/HsDirectoryConfig.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))
+       "$(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
+       "$(RM)" $(RM_OPTS) extra-gcc-opts docs/users_guide/ug-book.xml
+       "$(RM)" $(RM_OPTS) compiler/ghc.cabal ghc/ghc-bin.cabal
+       "$(RM)" $(RM_OPTS) libraries/base/include/HsBaseConfig.h
+       "$(RM)" $(RM_OPTS) libraries/directory/include/HsDirectoryConfig.h
+       "$(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))
+       "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/autom4te.cache, $(PACKAGES) $(PACKAGES_STAGE2))
 
 maintainer-clean : distclean
-       $(RM) configure mk/config.h.in
-       $(RM) -r autom4te.cache libraries/*/autom4te.cache
-       $(RM) ghc.spec
-       $(RM) $(patsubst %, libraries/%/GNUmakefile, \
+       "$(RM)" $(RM_OPTS) configure mk/config.h.in
+       "$(RM)" $(RM_OPTS) -r autom4te.cache libraries/*/autom4te.cache
+       "$(RM)" $(RM_OPTS) ghc.spec
+       "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/GNUmakefile, \
                $(PACKAGES) $(PACKAGES_STAGE2))
-       $(RM) $(patsubst %, libraries/%/ghc.mk, $(PACKAGES) $(PACKAGES_STAGE2))
-       $(RM) $(patsubst %, libraries/%/configure, \
+       "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/ghc.mk, $(PACKAGES) $(PACKAGES_STAGE2))
+       "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/configure, \
                $(PACKAGES) $(PACKAGES_STAGE2))
-       $(RM) libraries/base/include/HsBaseConfig.h.in
-       $(RM) libraries/directory/include/HsDirectoryConfig.h.in
-       $(RM) libraries/process/include/HsProcessConfig.h.in
-       $(RM) libraries/unix/include/HsUnixConfig.h.in
-       $(RM) libraries/old-time/include/HsTimeConfig.h.in
+       "$(RM)" $(RM_OPTS) libraries/base/include/HsBaseConfig.h.in
+       "$(RM)" $(RM_OPTS) libraries/directory/include/HsDirectoryConfig.h.in
+       "$(RM)" $(RM_OPTS) libraries/process/include/HsProcessConfig.h.in
+       "$(RM)" $(RM_OPTS) libraries/unix/include/HsUnixConfig.h.in
+       "$(RM)" $(RM_OPTS) libraries/old-time/include/HsTimeConfig.h.in
 
 .PHONY: all_libraries
 
@@ -940,3 +952,5 @@ bootstrapping-files: includes/ghcautoconf.h
 bootstrapping-files: includes/DerivedConstants.h
 bootstrapping-files: includes/GHCConstants.h
 
+.DELETE_ON_ERROR:
+