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