summaryrefslogtreecommitdiff
path: root/mk/build.mk.sample
diff options
context:
space:
mode:
authorJohan Tibell <johan.tibell@gmail.com>2014-03-10 18:54:47 +0100
committerJohan Tibell <johan.tibell@gmail.com>2014-03-10 18:54:47 +0100
commitddf79ebf69fe4a6e69d69d451a6040a53b1ea12c (patch)
treeb27036c65f0b1e3aad85f22eba3dc12bfded0ed9 /mk/build.mk.sample
parentf521a26cb741409011137115d17232df901c3c94 (diff)
downloadhaskell-ddf79ebf69fe4a6e69d69d451a6040a53b1ea12c.tar.gz
Add "bench" build flavour to build system
This build generates the same code as the "perf" build and is thus good for compiling benchmarks and inspecting the generated code. However, it compiles the stage2 compiler faster at the expense of compiler user programs more slowly.
Diffstat (limited to 'mk/build.mk.sample')
-rw-r--r--mk/build.mk.sample64
1 files changed, 64 insertions, 0 deletions
diff --git a/mk/build.mk.sample b/mk/build.mk.sample
index cb049ba494..a16eb0fa36 100644
--- a/mk/build.mk.sample
+++ b/mk/build.mk.sample
@@ -40,6 +40,17 @@
# A development build, working on the stage 2 compiler:
#BuildFlavour = devel2
+# A build with max optimisation that still builds the stage2 compiler
+# quickly. Compiled code will be the same as with "perf". Programs
+# will compile more slowly.
+#BuildFlavour = bench
+
+# As above but build GHC using the LLVM backend
+#BuildFlavour = bench-llvm
+
+# Bench build configured for a cross-compiler
+#BuildFlavour = bench-cross
+
# -------- Miscellaneous variables --------------------------------------------
# Set to V = 0 to get prettier build output.
@@ -235,6 +246,59 @@ LAX_DEPENDENCIES = YES
endif
+# -------- A bench build with optimised libs -----------------------------------
+
+ifeq "$(BuildFlavour)" "bench"
+
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O0 -fasm
+GhcLibHcOpts = -O2 -fasm
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# ---------------- Perf build using LLVM --------------------------------------
+
+ifeq "$(BuildFlavour)" "bench-llvm"
+
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O -fllvm
+GhcStage2HcOpts = -O0 -fllvm
+GhcLibHcOpts = -O2 -fllvm
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# ------- A Perf build configured for cross-compilation ----------------------
+
+ifeq "$(BuildFlavour)" "bench-cross"
+
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O0 -fasm
+GhcLibHcOpts = -O2 -fasm
+SplitObjs = NO
+INTEGER_LIBRARY = integer-simple
+Stage1Only = YES
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+DYNAMIC_BY_DEFAULT = NO
+DYNAMIC_GHC_PROGRAMS = NO
+
+endif
+
# -----------------------------------------------------------------------------
# Other settings that might be useful