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