Fix initialisation of strictness in the demand analyser
[ghc-hetmet.git] / ghc.mk
diff --git a/ghc.mk b/ghc.mk
index e0d2cce..1545f4d 100644 (file)
--- a/ghc.mk
+++ b/ghc.mk
@@ -292,12 +292,17 @@ include rules/bindist.mk
 # Packages that are built but not installed
 INTREE_ONLY_PACKAGES := haskeline mtl terminfo utf8-string xhtml
 
+DPH_PACKAGES := dph/dph-base dph/dph-prim-interface dph/dph-prim-seq \
+                dph/dph-common dph/dph-prim-par dph/dph-par dph/dph-seq \
+                vector primitive
+
 # Packages that, if present, must be built by the stage2 compiler,
 # because they use TH and/or annotations, or depend on other stage2
-# packages.
-STAGE2_PACKAGES := dph/dph-base dph/dph-prim-interface dph/dph-prim-seq \
-                  dph/dph-common dph/dph-prim-par dph/dph-par dph/dph-seq \
-                  vector primitive
+# packages:
+STAGE2_PACKAGES := $(DPH_PACKAGES) haskell98 haskell2010
+# Packages that we shouldn't build if we don't have TH (e.g. because
+# we're building a profiled compiler):
+TH_PACKAGES := $(DPH_PACKAGES)
 
 # Packages that are built by stage0, in addition to stage1.  These
 # packages are dependencies of GHC, that we do not assume the stage0
@@ -348,11 +353,13 @@ define addPackageGeneral
 endef
 
 define addPackage # args: $1 = package, $2 = condition
+ifneq "$(filter $1,$(TH_PACKAGES)) $(GhcProfiled)" "$1 YES"
 ifeq "$(filter $1,$(STAGE2_PACKAGES))" "$1"
 $(call addPackageGeneral,PACKAGES_STAGE2,$1,$2)
 else
 $(call addPackageGeneral,PACKAGES,$1,$2)
 endif
+endif
 endef
 
 $(eval $(call addPackage,ghc-prim))
@@ -432,6 +439,7 @@ utils/haddock/dist/package-data.mk: compiler/stage2/package-data.mk
 utils/ghc-pkg/dist-install/package-data.mk: compiler/stage2/package-data.mk
 utils/hsc2hs/dist-install/package-data.mk: compiler/stage2/package-data.mk
 utils/compare_sizes/dist/package-data.mk: compiler/stage2/package-data.mk
+utils/runghc/dist/package-data.mk: compiler/stage2/package-data.mk
 
 # add the final two package.conf dependencies: ghc-prim depends on RTS,
 # and RTS depends on libffi.
@@ -563,7 +571,6 @@ BUILD_DIRS += \
    docs/users_guide \
    docs/ext-core \
    docs/man \
-   libraries/Cabal/doc \
    $(GHC_UNLIT_DIR) \
    $(GHC_HP2PS_DIR)
 
@@ -767,6 +774,17 @@ ifeq "$(UseArchivesForGhci)" "NO"
 ghc/stage2/build/tmp/$(ghc_stage2_PROG) : $(GHCI_LIBS)
 endif
 
+ifeq "$(UseArchivesForGhci)" "YES"
+GHCI_lib_way = v
+else
+GHCI_lib_way = GHCI
+endif
+
+# Deps for TH uses in libraries
+$(foreach way, $(GhcLibWays),$(eval \
+libraries/vector/dist-install/build/Data/Vector/Fusion/Stream/Monadic.$($(way)_osuf): \
+    $(libraries/primitive_dist-install_$(GHCI_lib_way)_LIB) \
+  ))
 endif
 
 # -----------------------------------------------------------------------------