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