Tidy up gmp cleaning
[ghc-hetmet.git] / ghc.mk
diff --git a/ghc.mk b/ghc.mk
index 9667464..5040ff5 100644 (file)
--- a/ghc.mk
+++ b/ghc.mk
@@ -493,12 +493,10 @@ libraries/ghc-prim_dist-install_EXTRA_HADDOCK_SRCS = libraries/ghc-prim/dist-ins
 ifneq "$(CLEANING)" "YES"
 ifeq "$(INTEGER_LIBRARY)" "integer-gmp"
 libraries/base_dist-install_CONFIGURE_OPTS += --flags=-integer-simple
+else ifeq "$(INTEGER_LIBRARY)" "integer-simple"
+libraries/base_dist-install_CONFIGURE_OPTS += --flags=integer-simple
 else
-    ifeq "$(INTEGER_LIBRARY)" "integer-simple"
-       libraries/base_dist-install_CONFIGURE_OPTS += --flags=integer-simple
-    else
 $(error Unknown integer library: $(INTEGER_LIBRARY))
-    endif
 endif
 endif
 
@@ -569,6 +567,8 @@ endif
 
 ifeq "$(INTEGER_LIBRARY)" "integer-gmp"
 BUILD_DIRS += libraries/integer-gmp/gmp
+else ifneq "$(findstring clean,$(MAKECMDGOALS))" ""
+BUILD_DIRS += libraries/integer-gmp/gmp
 endif
 
 BUILD_DIRS += \
@@ -621,10 +621,6 @@ phase_3_or_later = YES
 endif
 ifeq "$(findstring $(phase),0 1 2 3)" ""
 phase_3_done = YES
-phase_4_or_later = YES
-endif
-ifeq "$(findstring $(phase),0 1 2 3 4)" ""
-phase_4_done = YES
 endif
 
 includes_dist-derivedconstants_CONFIGURE_PHASE = 0
@@ -640,39 +636,35 @@ utils/genprimopcode_dist_CONFIGURE_PHASE = 0
 # Then the bootlibs
 $(foreach lib,$(STAGE0_PACKAGES),$(eval \
   libraries/$(lib)_dist-boot_CONFIGURE_PHASE = 1))
+compiler_stage1_CONFIGURE_PHASE = 1
+ghc_stage1_CONFIGURE_PHASE = 1
+driver/ghc_dist_CONFIGURE_PHASE = 1
+driver/ghci_dist_CONFIGURE_PHASE = 1
+driver/haddock_dist_CONFIGURE_PHASE = 1
+utils/touchy_dist_CONFIGURE_PHASE = 1
 
-# We put the stage 1 compiler package in a later phase than the bootlibs
-# for the same reasone we have the
-#     $(compiler_stage1_depfile_haskell) : $(BOOT_LIBS)
-# dependency below
-compiler_stage1_CONFIGURE_PHASE = 2
-
-# Now we make the stage 1 compiler binary. Again, in a later phase than
-# its package for the same reason as the
-#     $(ghc_stage1_depfile_haskell) : $(compiler_stage1_v_LIB)
-# dep below
-ghc_stage1_CONFIGURE_PHASE = 3
+# In phase 2, the phase 1 things actually get built
 
 # Finally, the stage1 compiler is used to make the dependencies for
 # everything else, so we can now build the rest.
-compiler_stage2_CONFIGURE_PHASE = 4
-ghc_stage2_CONFIGURE_PHASE = 4
+compiler_stage2_CONFIGURE_PHASE = 3
+ghc_stage2_CONFIGURE_PHASE = 3
 
 $(foreach lib,$(PACKAGES) $(PACKAGES_STAGE2),$(eval \
-  libraries/$(lib)_dist-install_CONFIGURE_PHASE = 4))
-
-utils/hp2ps_dist_CONFIGURE_PHASE = 4
-utils/genapply_dist_CONFIGURE_PHASE = 4
-utils/haddock_dist_CONFIGURE_PHASE = 4
-utils/hsc2hs_dist-install_CONFIGURE_PHASE = 4
-utils/ghc-pkg_dist-install_CONFIGURE_PHASE = 4
-utils/hpc_dist_CONFIGURE_PHASE = 4
-utils/runghc_dist_CONFIGURE_PHASE = 4
-utils/ghctags_dist_CONFIGURE_PHASE = 4
-utils/ghc-pwd_dist_CONFIGURE_PHASE = 4
-utils/ghc-cabal_dist-install_CONFIGURE_PHASE = 4
-utils/mkUserGuidePart_dist_CONFIGURE_PHASE = 4
-utils/compare_sizes_dist_CONFIGURE_PHASE = 4
+  libraries/$(lib)_dist-install_CONFIGURE_PHASE = 3))
+
+utils/hp2ps_dist_CONFIGURE_PHASE = 3
+utils/genapply_dist_CONFIGURE_PHASE = 3
+utils/haddock_dist_CONFIGURE_PHASE = 3
+utils/hsc2hs_dist-install_CONFIGURE_PHASE = 3
+utils/ghc-pkg_dist-install_CONFIGURE_PHASE = 3
+utils/hpc_dist_CONFIGURE_PHASE = 3
+utils/runghc_dist_CONFIGURE_PHASE = 3
+utils/ghctags_dist_CONFIGURE_PHASE = 3
+utils/ghc-pwd_dist_CONFIGURE_PHASE = 3
+utils/ghc-cabal_dist-install_CONFIGURE_PHASE = 3
+utils/mkUserGuidePart_dist_CONFIGURE_PHASE = 3
+utils/compare_sizes_dist_CONFIGURE_PHASE = 3
 
 # ----------------------------------------------
 # Actually include all the sub-ghc.mk's
@@ -750,25 +742,7 @@ $(eval $(call build-package,libraries/bin-package-db,dist-boot,0))
 fixed_pkg_prev=
 $(foreach pkg,$(STAGE0_PACKAGES),$(eval $(call fixed_pkg_dep,$(pkg),dist-boot)))
 
-compiler/stage1/package-data.mk : \
-    libraries/Cabal/dist-boot/package-data.mk \
-    libraries/hpc/dist-boot/package-data.mk \
-    libraries/extensible-exceptions/dist-boot/package-data.mk \
-    libraries/bin-package-db/dist-boot/package-data.mk
-
-# These are necessary because the bootstrapping compiler may not know
-# about cross-package dependencies:
-$(compiler_stage1_depfile_haskell) : $(BOOT_LIBS)
-$(ghc_stage1_depfile_haskell) : $(compiler_stage1_v_LIB)
-
-# A few careful dependencies between bootstrapping packages.  When we
-# can rely on the stage 0 compiler being able to generate
-# cross-package dependencies with -M (fixed in GHC 6.12.1) we can drop
-# these, and also some of the phases.
-#
-# If you miss any out here, then 'make -j8' will probably tell you.
-#
-libraries/bin-package-db/dist-boot/build/Distribution/InstalledPackageInfo/Binary.$(v_osuf) : libraries/binary/dist-boot/build/Data/Binary.$(v_hisuf) libraries/Cabal/dist-boot/build/Distribution/InstalledPackageInfo.$(v_hisuf)
+compiler/stage1/package-data.mk : $(fixed_pkg_prev)
 
 # Make sure we have all the GHCi libs by the time we've built
 # ghc-stage2.  DPH includes a bit of Template Haskell which needs the
@@ -1215,17 +1189,6 @@ clean : clean_files clean_libraries
 clean_files :
        "$(RM)" $(RM_OPTS) $(CLEAN_FILES)
 
-ifneq "$(NO_CLEAN_GMP)" "YES"
-CLEAN_FILES += libraries/integer-gmp/gmp/gmp.h
-CLEAN_FILES += libraries/integer-gmp/gmp/libgmp.a
-
-clean : clean_gmp
-.PHONY: clean_gmp
-clean_gmp:
-       "$(RM)" $(RM_OPTS_REC) libraries/integer-gmp/gmp/objs
-       "$(RM)" $(RM_OPTS_REC) libraries/integer-gmp/gmp/gmpbuild
-endif
-
 .PHONY: clean_libraries
 clean_libraries: $(patsubst %,clean_libraries/%_dist-install,$(PACKAGES) $(PACKAGES_STAGE2))
 clean_libraries: $(patsubst %,clean_libraries/%_dist-boot,$(STAGE0_PACKAGES))