summaryrefslogtreecommitdiff
path: root/mk/flavours
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-08-31 14:39:47 +0200
committerThomas Miedema <thomasmiedema@gmail.com>2015-09-07 11:56:14 +0200
commit2c24fd707f8650205bb574ffac5f376239af3723 (patch)
treea720bb340f29eff28cb91c8db9c6c79c6bd12d23 /mk/flavours
parent062feee4e7408ad5b9d882e5fed2c700e337db72 (diff)
downloadhaskell-2c24fd707f8650205bb574ffac5f376239af3723.tar.gz
Build system: put each BuildFlavour in a separate file (#10223)
This allows easier diffing of different BuildFlavours, including `mk/flavours/validate.mk`. Reviewed By: bgamari, austin Differential Revision: https://phabricator.haskell.org/D1050
Diffstat (limited to 'mk/flavours')
-rw-r--r--mk/flavours/bench-cross.mk15
-rw-r--r--mk/flavours/bench-llvm.mk10
-rw-r--r--mk/flavours/bench.mk10
-rw-r--r--mk/flavours/devel1.mk12
-rw-r--r--mk/flavours/devel2.mk12
-rw-r--r--mk/flavours/perf-cross.mk15
-rw-r--r--mk/flavours/perf-llvm.mk10
-rw-r--r--mk/flavours/perf.mk10
-rw-r--r--mk/flavours/prof.mk12
-rw-r--r--mk/flavours/quick-cross.mk15
-rw-r--r--mk/flavours/quick-llvm.mk10
-rw-r--r--mk/flavours/quick.mk10
-rw-r--r--mk/flavours/quickest.mk10
-rw-r--r--mk/flavours/validate.mk44
14 files changed, 195 insertions, 0 deletions
diff --git a/mk/flavours/bench-cross.mk b/mk/flavours/bench-cross.mk
new file mode 100644
index 0000000000..9c3b68c895
--- /dev/null
+++ b/mk/flavours/bench-cross.mk
@@ -0,0 +1,15 @@
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O0
+GhcLibHcOpts = -O2
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+INTEGER_LIBRARY = integer-simple
+Stage1Only = YES
+DYNAMIC_BY_DEFAULT = NO
+DYNAMIC_GHC_PROGRAMS = NO
diff --git a/mk/flavours/bench-llvm.mk b/mk/flavours/bench-llvm.mk
new file mode 100644
index 0000000000..99957b9fdb
--- /dev/null
+++ b/mk/flavours/bench-llvm.mk
@@ -0,0 +1,10 @@
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O -fllvm
+GhcStage2HcOpts = -O0 -fllvm
+GhcLibHcOpts = -O2 -fllvm
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
diff --git a/mk/flavours/bench.mk b/mk/flavours/bench.mk
new file mode 100644
index 0000000000..ea4b18e3d5
--- /dev/null
+++ b/mk/flavours/bench.mk
@@ -0,0 +1,10 @@
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O0
+GhcLibHcOpts = -O2
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
diff --git a/mk/flavours/devel1.mk b/mk/flavours/devel1.mk
new file mode 100644
index 0000000000..b06b64f72d
--- /dev/null
+++ b/mk/flavours/devel1.mk
@@ -0,0 +1,12 @@
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O0 -DDEBUG
+GhcStage2HcOpts = -O
+GhcLibHcOpts = -O -dcore-lint
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+LAX_DEPENDENCIES = YES
diff --git a/mk/flavours/devel2.mk b/mk/flavours/devel2.mk
new file mode 100644
index 0000000000..156522687d
--- /dev/null
+++ b/mk/flavours/devel2.mk
@@ -0,0 +1,12 @@
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O0 -DDEBUG
+GhcLibHcOpts = -O -dcore-lint
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+LAX_DEPENDENCIES = YES
diff --git a/mk/flavours/perf-cross.mk b/mk/flavours/perf-cross.mk
new file mode 100644
index 0000000000..3fcc199098
--- /dev/null
+++ b/mk/flavours/perf-cross.mk
@@ -0,0 +1,15 @@
+SRC_HC_OPTS = -O -H64m -fllvm
+GhcStage1HcOpts = -O2
+GhcStage2HcOpts = -O2 -fllvm
+GhcLibHcOpts = -O2
+BUILD_PROF_LIBS = YES
+#SplitObjs
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+INTEGER_LIBRARY = integer-simple
+Stage1Only = YES
+DYNAMIC_BY_DEFAULT = NO
+DYNAMIC_GHC_PROGRAMS = NO
diff --git a/mk/flavours/perf-llvm.mk b/mk/flavours/perf-llvm.mk
new file mode 100644
index 0000000000..581037f7f8
--- /dev/null
+++ b/mk/flavours/perf-llvm.mk
@@ -0,0 +1,10 @@
+SRC_HC_OPTS = -O -H64m -fllvm
+GhcStage1HcOpts = -O -fllvm
+GhcStage2HcOpts = -O2 -fllvm
+GhcLibHcOpts = -O2
+BUILD_PROF_LIBS = YES
+#SplitObjs
+#HADDOCK_DOCS
+#BUILD_DOCBOOK_HTML
+#BUILD_DOCBOOK_PS
+#BUILD_DOCBOOK_PDF
diff --git a/mk/flavours/perf.mk b/mk/flavours/perf.mk
new file mode 100644
index 0000000000..d68f2f9102
--- /dev/null
+++ b/mk/flavours/perf.mk
@@ -0,0 +1,10 @@
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O2
+GhcLibHcOpts = -O2
+BUILD_PROF_LIBS = YES
+#SplitObjs
+#HADDOCK_DOCS
+#BUILD_DOCBOOK_HTML
+#BUILD_DOCBOOK_PS
+#BUILD_DOCBOOK_PDF
diff --git a/mk/flavours/prof.mk b/mk/flavours/prof.mk
new file mode 100644
index 0000000000..553cb120f7
--- /dev/null
+++ b/mk/flavours/prof.mk
@@ -0,0 +1,12 @@
+SRC_HC_OPTS = -O0 -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O
+GhcLibHcOpts = -O
+BUILD_PROF_LIBS = YES
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+GhcProfiled = YES
diff --git a/mk/flavours/quick-cross.mk b/mk/flavours/quick-cross.mk
new file mode 100644
index 0000000000..9b6fc27e67
--- /dev/null
+++ b/mk/flavours/quick-cross.mk
@@ -0,0 +1,15 @@
+SRC_HC_OPTS = -O0 -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O0 -fllvm
+GhcLibHcOpts = -O -fllvm
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+INTEGER_LIBRARY = integer-simple
+Stage1Only = YES
+DYNAMIC_BY_DEFAULT = NO
+DYNAMIC_GHC_PROGRAMS = NO
diff --git a/mk/flavours/quick-llvm.mk b/mk/flavours/quick-llvm.mk
new file mode 100644
index 0000000000..90ccb7ac28
--- /dev/null
+++ b/mk/flavours/quick-llvm.mk
@@ -0,0 +1,10 @@
+SRC_HC_OPTS = -O0 -H64m -fllvm
+GhcStage1HcOpts = -O -fllvm
+GhcStage2HcOpts = -O0 -fllvm
+GhcLibHcOpts = -O -fllvm
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
diff --git a/mk/flavours/quick.mk b/mk/flavours/quick.mk
new file mode 100644
index 0000000000..eef6dc5c1a
--- /dev/null
+++ b/mk/flavours/quick.mk
@@ -0,0 +1,10 @@
+SRC_HC_OPTS = -O0 -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O0
+GhcLibHcOpts = -O
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
diff --git a/mk/flavours/quickest.mk b/mk/flavours/quickest.mk
new file mode 100644
index 0000000000..71e7c5e94c
--- /dev/null
+++ b/mk/flavours/quickest.mk
@@ -0,0 +1,10 @@
+SRC_HC_OPTS = -O0 -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O0
+GhcLibHcOpts = -O0
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
diff --git a/mk/flavours/validate.mk b/mk/flavours/validate.mk
new file mode 100644
index 0000000000..6c92914525
--- /dev/null
+++ b/mk/flavours/validate.mk
@@ -0,0 +1,44 @@
+SRC_HC_OPTS = -O0 -H64m
+GhcStage1HcOpts = -O
+GhcStage2HcOpts = -O -dcore-lint
+GhcLibHcOpts = -O -dcore-lint
+BUILD_PROF_LIBS = NO
+SplitObjs = NO
+HADDOCK_DOCS = YES
+BUILD_DOCBOOK_HTML = YES
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+ifeq "$(ValidateHpc)" "YES"
+GhcStage2HcOpts += -fhpc -hpcdir $(TOP)/testsuite/hpc_output/
+endif
+ifeq "$(ValidateSpeed)" "SLOW"
+GhcStage2HcOpts += -DDEBUG
+endif
+
+InstallExtraPackages = YES
+
+WERROR = -Werror
+
+# DO NOT EDIT THIS FILE! Instead, create a file mk/validate.mk, whose settings
+# will override these. See also mk/custom-settings.mk.
+#
+#
+# (Note: these comments are at the end of this file, to make it easier to diff
+# this file with other build flavours.)
+#
+#
+# Note [validate build settings]
+#
+# Using GhcStage2HcOpts=-O (rather than -O0) here bringes my validate down from
+# 22mins to 16 mins. Compiling stage2 takes longer, but we gain a faster
+# haddock, faster running of the tests, and faster building of the utils to be
+# installed
+#
+# dblatex with miktex under msys/mingw can't build the PS and PDF docs,
+# and just building the HTML docs is sufficient to check that the
+# markup is correct, so we turn off PS and PDF doc building when
+# validating.
+#
+# We set InstallExtraPackages=YES, because we want to install the "extra"
+# packages, so that we can test them.