summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-07-10 19:15:49 +0200
committerThomas Miedema <thomasmiedema@gmail.com>2015-07-14 00:31:05 +0200
commit392ff06d4bc47bcd731404a48355d8b165609293 (patch)
tree4236924693cb96c6ca1aa75096cdc81ff37bcb3c
parent47ebe267e8f78eee68333ba12a83d4fa6d763c3b (diff)
downloadhaskell-392ff06d4bc47bcd731404a48355d8b165609293.tar.gz
Build system: do not build stm and parallel by default
stm and parallel have an 'extra' tag in the ./packages file, so would get added to PACKAGES_STAGE2 by default, and subsequently build by the stage2 compiler. With this patch, this happens only when you set BUILD_EXTRA_PKGS=YES in build.mk. A normal validate still builds (and tests) the 'extra' packages, but they are skipped for `validate --fast`. Maybe this brings us closer to finishing within the 50 minute Travis limit as well. We can later try to give random, primitive and vector an 'extra' tag as well (now they have a 'dph' tag), but some tests will probably fail at first. Differential Revision: https://phabricator.haskell.org/D1065
-rw-r--r--ghc.mk14
-rw-r--r--mk/build.mk.sample4
-rw-r--r--mk/config.mk.in2
-rwxr-xr-xvalidate5
4 files changed, 17 insertions, 8 deletions
diff --git a/ghc.mk b/ghc.mk
index 219cdc75ff..db077bcce5 100644
--- a/ghc.mk
+++ b/ghc.mk
@@ -435,16 +435,14 @@ define addExtraPackage
ifeq "$2" "-"
# Do nothing; this package is already handled above
else ifeq "$2" "dph"
-## DPH-specific clause
-ifeq "$$(GhcProfiled)" "YES"
-# Ignore package: The DPH packages need TH, which is incompatible with
-# a profiled GHC
-else ifneq "$$(BUILD_DPH)" "YES"
-# Ignore package: DPH was disabled
-else
+ifeq "$$(BUILD_DPH) $$(GhcProfiled)" "YES NO"
+# The DPH packages need TH, which is incompatible with a profiled GHC.
+PACKAGES_STAGE2 += $1
+endif
+else ifeq "$2" "extra"
+ifeq "$$(BUILD_EXTRA_PKGS)" "YES"
PACKAGES_STAGE2 += $1
endif
-## end of DPH-specific clause
else
PACKAGES_STAGE2 += $1
endif
diff --git a/mk/build.mk.sample b/mk/build.mk.sample
index 3f9770226b..19a59ae5c9 100644
--- a/mk/build.mk.sample
+++ b/mk/build.mk.sample
@@ -69,6 +69,10 @@ V = 1
# working on stage 2 and want to freeze stage 1 and the libraries for
# a while.
+# Build the "extra" packages (see ./packages). This enables more tests. See:
+# https://ghc.haskell.org/trac/ghc/wiki/Building/RunningTests/Running#AdditionalPackages
+#BUILD_EXTRA_PKGS=YES
+
# Uncomment the following line to enable building DPH
#BUILD_DPH=YES
diff --git a/mk/config.mk.in b/mk/config.mk.in
index bcdebbf113..175aa06bf2 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -773,6 +773,8 @@ endif
# Build DPH?
BUILD_DPH = NO
+# Build the "extra" packages (see ./packages)?
+BUILD_EXTRA_PKGS = NO
################################################################################
#
diff --git a/validate b/validate
index fbf3c1be63..e72a578023 100755
--- a/validate
+++ b/validate
@@ -171,6 +171,11 @@ echo "ValidateSpeed=$speed" >> mk/are-validating.mk
echo "ValidateHpc=$hpc" >> mk/are-validating.mk
echo "V=0" >> mk/are-validating.mk # Less gunk
+if [ $speed != "FAST" ]; then
+ # Build the "extra" packages (see ./packages), to enable more tests.
+ echo "BUILD_EXTRA_PKGS=YES" >> mk/are-validating.mk
+fi
+
if [ $use_dph -eq 1 ]; then
echo "BUILD_DPH=YES" >> mk/are-validating.mk
else