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