Disable profiling and dynamic ways temporarily.
[ghc.git] / src / Settings / User.hs
1 module Settings.User (
2 userArgs, userPackages, userLibWays, userRtsWays, userTargetDirectory,
3 userProgramPath, userKnownPackages, integerLibrary,
4 trackBuildSystem, buildHaddock, validating, ghciWithDebugger, ghcProfiled,
5 ghcDebugged, dynamicGhcPrograms, laxDependencies, buildSystemConfigFile
6 ) where
7
8 import Expression
9 import Predicates
10
11 -- No user-specific settings by default
12 -- TODO: rename to userArgs
13 userArgs :: Args
14 userArgs = mempty
15
16 -- Control which packages get to be built
17 userPackages :: Packages
18 userPackages = mempty
19
20 -- Add new user-defined packages
21 userKnownPackages :: [Package]
22 userKnownPackages = []
23
24 -- Control which ways libraries and rts are built
25 -- TODO: skip profiling for speed, skip dynamic since it's currently broken
26 userLibWays :: Ways
27 userLibWays = remove [profiling, dynamic]
28
29 userRtsWays :: Ways
30 userRtsWays = mempty
31
32 -- Control where build results go (see GHC.hs for defaults)
33 userTargetDirectory :: Stage -> Package -> FilePath
34 userTargetDirectory = defaultTargetDirectory
35
36 -- Control how built programs are called (see GHC.hs for defaults)
37 userProgramPath :: Stage -> Package -> Maybe FilePath
38 userProgramPath = defaultProgramPath
39
40 -- Choose integer library: integerGmp, integerGmp2 or integerSimple
41 integerLibrary :: Package
42 integerLibrary = integerGmp
43
44 -- User-defined flags. Note the following type semantics:
45 -- * Bool: a plain Boolean flag whose value is known at compile time
46 -- * Action Bool: a flag whose value can depend on the build environment
47 -- * Predicate: a flag depending on the build environment and the current target
48
49 -- Set this to True if you are making any changes in the build system and want
50 -- appropriate rebuilds to be initiated. Switching this to False speeds things
51 -- up a little (particularly zero builds).
52 -- WARNING: a complete rebuild is required when changing this setting.
53 trackBuildSystem :: Bool
54 trackBuildSystem = True
55
56 validating :: Bool
57 validating = False
58
59 dynamicGhcPrograms :: Bool
60 dynamicGhcPrograms = False
61
62 ghciWithDebugger :: Bool
63 ghciWithDebugger = False
64
65 ghcProfiled :: Bool
66 ghcProfiled = False
67
68 -- TODO: do we need to be able to set this from command line?
69 ghcDebugged :: Bool
70 ghcDebugged = False
71
72 -- When laxDependencies flag is set to True, dependencies on the GHC executable
73 -- are turned into order-only dependencies to avoid needless recompilation when
74 -- making changes to GHC's sources. In certain situations this can lead to build
75 -- failures, in which case you should reset the flag (at least temporarily).
76 laxDependencies :: Bool
77 laxDependencies = False
78
79 buildHaddock :: Predicate
80 buildHaddock = return True
81
82 buildSystemConfigFile :: Bool
83 buildSystemConfigFile = False