Fix making it possible to build without the NCG
[ghc-hetmet.git] / compiler / ghc.cabal
1 Name: ghc
2 -- XXX Version number!
3 Version: 6.9
4 Copyright: XXX
5 -- License: XXX
6 License-File: XXX
7 Author: XXX
8 Maintainer: glasgow-haskell-users@haskell.org
9 Homepage: http://www.haskell.org/ghc/
10 Synopsis: XXX
11 Description:
12         XXX
13 Category: XXX
14 Build-Type: Simple
15 Cabal-Version: >= 1.2
16
17 Flag base3
18     Description: Choose the new smaller, split-up base package.
19
20 Flag dynlibs
21     Description: Dynamic library support
22
23 Flag editline
24     Description: Use editline
25
26 Flag ghci
27     Description: Build GHCi support.
28
29 Flag ncg
30     Description: Build the NCG.
31
32 Flag stage1
33     Description: Is this stage 1?
34
35 Library
36     Exposed: False
37
38     if flag(base3)
39         Build-Depends: base       >= 3   && < 5,
40                        directory  >= 1   && < 1.1,
41                        process    >= 1   && < 1.1,
42                        bytestring >= 0.9 && < 0.10,
43                        old-time   >= 1   && < 1.1,
44                        containers >= 0.1 && < 0.2,
45                        array      >= 0.1 && < 0.2
46     else
47         Build-Depends: base < 3
48     Build-Depends: filepath >= 1 && < 1.2
49     Build-Depends: haskell98, Cabal, hpc
50     if os(windows)
51         Build-Depends: Win32
52     else
53         Build-Depends: unix
54
55     if flag(editline)
56         Build-Depends: editline
57         CPP-Options: -DUSE_EDITLINE
58
59     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
60
61     if flag(ghci)
62         Build-Depends: template-haskell
63         CPP-Options: -DGHCI
64         Include-Dirs: ../libffi/build/include
65
66     if !flag(ncg)
67         CPP-Options: -DOMIT_NATIVE_CODEGEN
68
69     -- GHC 6.4.2 needs to be able to find WCsubst.c, which needs to be
70     -- able to find WCsubst.h
71     Include-Dirs: ../libraries/base/cbits, ../libraries/base/include
72
73     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
74                 ForeignFunctionInterface, EmptyDataDecls,
75                 TypeSynonymInstances, MultiParamTypeClasses,
76                 FlexibleInstances, Rank2Types, PatternSignatures
77
78     Include-Dirs: . parser utils
79
80     if flag(stage1)
81         Include-Dirs: stage1
82     else
83         Include-Dirs: stage2plus
84     Install-Includes: HsVersions.h, ghc_boot_platform.h
85
86     c-sources:
87         parser/cutils.c
88         utils/md5.c
89         -- For GHC < 6.5:
90         cbits/unicode.c
91
92     if flag(dynlibs)
93         c-sources:
94             ghci/keepCAFsForGHCi.c
95
96     hs-source-dirs:
97         basicTypes
98         cmm
99         codeGen
100         coreSyn
101         cprAnalysis
102         deSugar
103         ghci
104         hsSyn
105         iface
106         main
107         parser
108         prelude
109         profiling
110         rename
111         simplCore
112         simplStg
113         specialise
114         stgSyn
115         stranal
116         typecheck
117         types
118         utils
119         vectorise
120
121     Exposed-Modules:
122         BasicTypes
123         DataCon
124         Demand
125         Exception
126         Id
127         IdInfo
128         Literal
129         MkId
130         Module
131         Name
132         NameEnv
133         NameSet
134         NewDemand
135         OccName
136         RdrName
137         SrcLoc
138         UniqSupply
139         Unique
140         Var
141         VarEnv
142         VarSet
143         BlockId
144         CLabel
145         Cmm
146         CmmBrokenBlock
147         CmmCPS
148         CmmCPSGen
149         CmmCPSZ
150         CmmCallConv
151         CmmCommonBlockElimZ
152         CmmContFlowOpt
153         CmmCvt
154         CmmExpr
155         CmmInfo
156         CmmLex
157         CmmLint
158         CmmLive
159         CmmLiveZ
160         CmmOpt
161         CmmParse
162         CmmProcPoint
163         CmmProcPointZ
164         CmmSpillReload
165         CmmTx
166         CmmUtils
167         CmmZipUtil
168         DFMonad
169         Dataflow
170         MachOp
171         MkZipCfg
172         MkZipCfgCmm
173         OptimizationFuel
174         PprC
175         PprCmm
176         PprCmmZ
177         StackColor
178         StackPlacements
179         ZipCfg
180         ZipCfgCmmRep
181         ZipCfgExtras
182         ZipDataflow
183         Bitmap
184         CgBindery
185         CgCallConv
186         CgCase
187         CgClosure
188         CgCon
189         CgExpr
190         CgForeignCall
191         CgHeapery
192         CgHpc
193         CgInfoTbls
194         CgLetNoEscape
195         CgMonad
196         CgParallel
197         CgPrimOp
198         CgProf
199         CgStackery
200         CgTailCall
201         CgTicky
202         CgUtils
203         ClosureInfo
204         CodeGen
205         SMRep
206         CoreFVs
207         CoreLint
208         CorePrep
209         CoreSubst
210         CoreSyn
211         CoreTidy
212         CoreUnfold
213         CoreUtils
214         ExternalCore
215         MkCore
216         MkExternalCore
217         PprCore
218         PprExternalCore
219         CprAnalyse
220         Check
221         Coverage
222         Desugar
223         DsArrows
224         DsBinds
225         DsCCall
226         DsExpr
227         DsForeign
228         DsGRHSs
229         DsListComp
230         DsMonad
231         DsUtils
232         Match
233         MatchCon
234         MatchLit
235         HsBinds
236         HsDecls
237         HsDoc
238         HsExpr
239         HsImpExp
240         HsLit
241         HsPat
242         HsSyn
243         HsTypes
244         HsUtils
245         BinIface
246         BuildTyCl
247         IfaceEnv
248         IfaceSyn
249         IfaceType
250         LoadIface
251         MkIface
252         TcIface
253         BreakArray
254         CmdLineParser
255         CodeOutput
256         Config
257         Constants
258         DriverMkDepend
259         DriverPhases
260         DriverPipeline
261         DynFlags
262         ErrUtils
263         Finder
264         GHC
265         HeaderInfo
266         HscMain
267         HscStats
268         HscTypes
269         InteractiveEval
270         PackageConfig
271         Packages
272         ParsePkgConf
273         PprTyThing
274         StaticFlags
275         SysTools
276         TidyPgm
277         Ctype
278         HaddockLex
279         HaddockParse
280         HaddockUtils
281         LexCore
282         Lexer
283         Parser
284         ParserCore
285         ParserCoreUtils
286         RdrHsSyn
287         ForeignCall
288         PrelInfo
289         PrelNames
290         PrelRules
291         PrimOp
292         TysPrim
293         TysWiredIn
294         CostCentre
295         SCCfinal
296         RnBinds
297         RnEnv
298         RnExpr
299         RnHsDoc
300         RnHsSyn
301         RnNames
302         RnPat
303         RnSource
304         RnTypes
305         CSE
306         FloatIn
307         FloatOut
308         LiberateCase
309         OccurAnal
310         SAT
311         SetLevels
312         SimplCore
313         SimplEnv
314         SimplMonad
315         SimplUtils
316         Simplify
317         SRT
318         SimplStg
319         StgStats
320         Rules
321         SpecConstr
322         Specialise
323         CoreToStg
324         StgLint
325         StgSyn
326         DmdAnal
327         SaAbsInt
328         SaLib
329         StrictAnal
330         WorkWrap
331         WwLib
332         FamInst
333         Inst
334         TcArrows
335         TcBinds
336         TcClassDcl
337         TcDefaults
338         TcDeriv
339         TcEnv
340         TcExpr
341         TcForeign
342         TcGenDeriv
343         TcHsSyn
344         TcHsType
345         TcInstDcls
346         TcMType
347         TcMatches
348         TcPat
349         TcRnDriver
350         TcRnMonad
351         TcRnTypes
352         TcRules
353         TcSimplify
354         TcTyClsDecls
355         TcTyDecls
356         TcTyFuns
357         TcType
358         TcUnify
359         Class
360         Coercion
361         FamInstEnv
362         FunDeps
363         Generics
364         InstEnv
365         TyCon
366         Type
367         TypeRep
368         Unify
369         Bag
370         Binary
371         BufWrite
372         Digraph
373         Encoding
374         FastBool
375         FastFunctions
376         FastMutInt
377         FastString
378         FastTypes
379         Fingerprint
380         FiniteMap
381         GraphBase
382         GraphColor
383         GraphOps
384         GraphPpr
385         IOEnv
386         Interval
387         LazyUniqFM
388         ListSetOps
389         Maybes
390         MonadUtils
391         OrdList
392         Outputable
393         Panic
394         Pretty
395         State
396         StringBuffer
397         Unicode
398         UniqFM
399         UniqSet
400         Util
401         VectBuiltIn
402         VectCore
403         VectMonad
404         VectType
405         VectUtils
406         Vectorise
407
408     if flag(ncg)
409         hs-source-dirs:
410             nativeGen
411
412         Exposed-Modules:
413             AsmCodeGen
414             MachCodeGen
415             MachInstrs
416             MachRegs
417             NCGMonad
418             PositionIndependentCode
419             PprMach
420             RegAllocColor
421             RegAllocInfo
422             RegAllocLinear
423             RegAllocStats
424             RegArchBase
425             RegArchX86
426             RegCoalesce
427             RegLiveness
428             RegSpill
429             RegSpillClean
430             RegSpillCost
431
432     if flag(ghci)
433         Exposed-Modules:
434             DsMeta
435             TcSplice
436             Convert
437             ByteCodeAsm
438             ByteCodeFFI
439             ByteCodeGen
440             ByteCodeInstr
441             ByteCodeItbls
442             ByteCodeLink
443             Debugger
444             GhciMonad
445             GhciTags
446             InteractiveUI
447             LibFFI
448             Linker
449             ObjLink
450             RtClosureInspect
451