Add "Unregisterised" as a field in the settings file
[ghc.git] / mk / build.mk.sample
1 # -----------------------------------------------------------------------------
2 # A Sample build.mk
3 #
4 # Uncomment one of the following BuildFlavour settings to get the desired
5 # overall build type, and then tweak the options in the relevant section
6 # below.
7
8 # Uncomment one of these to select a build profile below:
9
10 # Full build with max optimisation and everything enabled (very slow build)
11 #BuildFlavour = perf
12
13 # As above but build GHC using the LLVM backend
14 #BuildFlavour = perf-llvm
15
16 # Fast build with optimised libraries, no profiling (RECOMMENDED):
17 #BuildFlavour = quick
18
19 # Even faster build.  NOT RECOMMENDED: the libraries will be
20 # completely unoptimised, so any code built with this compiler
21 # (including stage2) will run very slowly:
22 #BuildFlavour = quickest
23
24 # Profile the stage2 compiler:
25 #BuildFlavour = prof
26
27 # A development build, working on the stage 1 compiler:
28 #BuildFlavour = devel1
29
30 # A development build, working on the stage 2 compiler:
31 #BuildFlavour = devel2
32
33 GhcLibWays = v
34
35 # -------- 1. A Performance/Distribution build--------------------------------
36
37 ifeq "$(BuildFlavour)" "perf"
38
39 # perf matches the default settings, repeated here for comparison:
40
41 SRC_HC_OPTS     = -O -H64m
42 GhcStage1HcOpts = -O -fasm
43 GhcStage2HcOpts = -O2 -fasm
44 GhcHcOpts       = -Rghc-timing
45 GhcLibHcOpts    = -O2
46 GhcLibWays     += p
47
48 ifeq "$(PlatformSupportsSharedLibs)" "YES"
49 GhcLibWays += dyn
50 endif
51
52 endif
53
54 # ---------------- Perf build using LLVM -------------------------------------
55
56 ifeq "$(BuildFlavour)" "perf-llvm"
57
58 SRC_HC_OPTS     = -O -H64m -fllvm
59 GhcStage1HcOpts = -O -fllvm
60 GhcStage2HcOpts = -O2 -fllvm
61 GhcHcOpts       = -Rghc-timing
62 GhcLibHcOpts    = -O2
63 GhcLibWays     += p
64
65 ifeq "$(PlatformSupportsSharedLibs)" "YES"
66 GhcLibWays += dyn
67 endif
68
69 endif
70
71 # -------- A Fast build ------------------------------------------------------
72
73 ifeq "$(BuildFlavour)" "quickest"
74
75 SRC_HC_OPTS        = -H64m -O0 -fasm
76 GhcStage1HcOpts    = -O -fasm
77 GhcStage2HcOpts    = -O0 -fasm
78 GhcLibHcOpts       = -O0 -fasm
79 SplitObjs          = NO
80 HADDOCK_DOCS       = NO
81 BUILD_DOCBOOK_HTML = NO
82 BUILD_DOCBOOK_PS   = NO
83 BUILD_DOCBOOK_PDF  = NO
84
85 endif
86
87 # -------- A Fast build with optimised libs ----------------------------------
88
89 ifeq "$(BuildFlavour)" "quick"
90
91 SRC_HC_OPTS        = -H64m -O0 -fasm
92 GhcStage1HcOpts    = -O -fasm
93 GhcStage2HcOpts    = -O0 -fasm
94 GhcLibHcOpts       = -O -fasm
95 SplitObjs          = NO
96 HADDOCK_DOCS       = NO
97 BUILD_DOCBOOK_HTML = NO
98 BUILD_DOCBOOK_PS   = NO
99 BUILD_DOCBOOK_PDF  = NO
100
101 endif
102
103 # -------- Profile the stage2 compiler ---------------------------------------
104
105 ifeq "$(BuildFlavour)" "prof"
106
107 SRC_HC_OPTS        = -H64m -O0 -fasm
108 GhcStage1HcOpts    = -O -fasm
109 GhcStage2HcOpts    = -O -fasm
110 GhcLibHcOpts       = -O -fasm
111
112 GhcLibWays         += p
113 GhcProfiled        = YES
114
115 SplitObjs          = NO
116 HADDOCK_DOCS       = NO
117 BUILD_DOCBOOK_HTML = NO
118 BUILD_DOCBOOK_PS   = NO
119 BUILD_DOCBOOK_PDF  = NO
120
121 endif
122
123
124 # -------- A Development build (stage 1) -------------------------------------
125
126 ifeq "$(BuildFlavour)" "devel1"
127
128 SRC_HC_OPTS        = -H64m -O -fasm
129 GhcLibHcOpts       = -O -dcore-lint
130 GhcStage1HcOpts    = -Rghc-timing -O0 -DDEBUG
131 GhcStage2HcOpts    = -Rghc-timing -O -fasm
132 SplitObjs          = NO
133 HADDOCK_DOCS       = NO
134 BUILD_DOCBOOK_HTML = NO
135 BUILD_DOCBOOK_PS   = NO
136 BUILD_DOCBOOK_PDF  = NO
137 LAX_DEPENDENCIES   = YES
138
139 endif
140
141 # -------- A Development build (stage 2) -------------------------------------
142
143 ifeq "$(BuildFlavour)" "devel2"
144
145 SRC_HC_OPTS        = -H64m -O -fasm
146 GhcLibHcOpts       = -O -dcore-lint
147 GhcStage1HcOpts    = -Rghc-timing -O -fasm
148 GhcStage2HcOpts    = -Rghc-timing -O0 -DDEBUG
149 SplitObjs          = NO
150 HADDOCK_DOCS       = NO
151 BUILD_DOCBOOK_HTML = NO
152 BUILD_DOCBOOK_PS   = NO
153 BUILD_DOCBOOK_PDF  = NO
154 LAX_DEPENDENCIES   = YES
155
156 # After stage 1 and the libraries have been built, you can uncomment this line:
157
158 # stage=2
159
160 # Then stage 1 will not be touched by the build system, until
161 # you comment the line again.  This is a useful trick for when you're
162 # working on stage 2 and want to freeze stage 1 and the libraries for
163 # a while.
164
165 endif
166
167 # -----------------------------------------------------------------------------
168 # Other settings that might be useful
169
170 # NoFib settings
171 NoFibWays =
172 STRIP_CMD = :
173