The bootstrapping compiler is now required to be > 609
[ghc-hetmet.git] / compiler / ghc.cabal.in
1 -- WARNING: ghc.cabal is automatically generated from ghc.cabal.in by
2 -- ./configure.  Make sure you are editing ghc.cabal.in, not ghc.cabal.
3
4 Name: ghc
5 Version: @ProjectVersion@
6 License: BSD3
7 License-File: ../LICENSE
8 Author: The GHC Team
9 Maintainer: glasgow-haskell-users@haskell.org
10 Homepage: http://www.haskell.org/ghc/
11 Synopsis: The GHC API
12 Description:
13     GHC's functionality can be useful for more things than just
14     compiling Haskell programs. Important use cases are programs
15     that analyse (and perhaps transform) Haskell code. Others
16     include loading Haskell code dynamically in a GHCi-like manner.
17     For this reason, a lot of GHC's functionality is made available
18     through this package.
19 Category: Development
20 Build-Type: Simple
21 Cabal-Version: >= 1.2.3
22
23 Flag base4
24     Description: Choose the even newer, even smaller, split-up base package.
25
26 Flag base3
27     Description: Choose the new smaller, split-up base package.
28
29 Flag dynlibs
30     Description: Dynamic library support
31     Default: False
32     Manual: True
33
34 Flag ghci
35     Description: Build GHCi support.
36     Default: False
37     Manual: True
38
39 Flag ncg
40     Description: Build the NCG.
41     Default: False
42     Manual: True
43
44 Flag stage1
45     Description: Is this stage 1?
46     Default: False
47
48 Flag stage2
49     Description: Is this stage 2?
50     Default: False
51
52 Flag stage3
53     Description: Is this stage 3?
54     Default: False
55
56 Library
57     Exposed: False
58
59     if flag(base4)
60         Build-Depends: base       >= 4   && < 5
61     if flag(base3)
62         Build-Depends: base       >= 3   && < 4
63     if !flag(base3) && !flag(base4)
64         Build-Depends: base       < 3
65
66     if flag(base3) || flag(base4)
67         Build-Depends: directory  >= 1   && < 1.1,
68                        process    >= 1   && < 1.1,
69                        bytestring >= 0.9 && < 0.10,
70                        old-time   >= 1   && < 1.1,
71                        containers >= 0.1 && < 0.4,
72                        array      >= 0.1 && < 0.4
73
74     Build-Depends: filepath >= 1 && < 1.2
75     Build-Depends: Cabal, hpc
76     if os(windows)
77         Build-Depends: Win32
78     else
79         Build-Depends: unix
80
81     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
82
83     if flag(ghci)
84         Build-Depends: template-haskell
85         CPP-Options: -DGHCI
86         Include-Dirs: ../libffi/build/include
87
88     if !flag(ncg)
89         CPP-Options: -DOMIT_NATIVE_CODEGEN
90
91     Build-Depends: bin-package-db
92
93     -- GHC 6.4.2 needs to be able to find WCsubst.c, which needs to be
94     -- able to find WCsubst.h
95     Include-Dirs: ../libraries/base/cbits, ../libraries/base/include
96
97     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
98                 ForeignFunctionInterface, EmptyDataDecls,
99                 TypeSynonymInstances, MultiParamTypeClasses,
100                 FlexibleInstances, Rank2Types, ScopedTypeVariables,
101                 DeriveDataTypeable, RelaxedPolyRec
102
103     Include-Dirs: . parser utils
104
105     if flag(stage1)
106         Include-Dirs: stage1
107     else
108         if flag(stage2)
109             Include-Dirs: stage2
110         else
111             if flag(stage3)
112                 Include-Dirs: stage2
113
114     Install-Includes: HsVersions.h, ghc_boot_platform.h
115
116     c-sources:
117         parser/cutils.c
118         utils/md5.c
119
120     if flag(dynlibs)
121         c-sources:
122             ghci/keepCAFsForGHCi.c
123
124     hs-source-dirs:
125         basicTypes
126         cmm
127         codeGen
128         coreSyn
129         deSugar
130         ghci
131         hsSyn
132         iface
133         main
134         parser
135         prelude
136         profiling
137         rename
138         simplCore
139         simplStg
140         specialise
141         stgSyn
142         stranal
143         typecheck
144         types
145         utils
146         vectorise
147
148     Exposed-Modules:
149         BasicTypes
150         DataCon
151         Demand
152         Exception
153         Id
154         IdInfo
155         Literal
156         MkId
157         Module
158         Name
159         NameEnv
160         NameSet
161         OccName
162         RdrName
163         SrcLoc
164         UniqSupply
165         Unique
166         Var
167         VarEnv
168         VarSet
169         BlockId
170         CLabel
171         Cmm
172         CmmBrokenBlock
173         CmmBuildInfoTables
174         CmmCPS
175         CmmCPSGen
176         CmmCPSZ
177         CmmCallConv
178         CmmCommonBlockElimZ
179         CmmContFlowOpt
180         CmmCvt
181         CmmExpr
182         CmmInfo
183         CmmLex
184         CmmLint
185         CmmLive
186         CmmLiveZ
187         CmmOpt
188         CmmParse
189         CmmProcPoint
190         CmmProcPointZ
191         CmmSpillReload
192         CmmStackLayout
193         CmmTx
194         CmmUtils
195         CmmZipUtil
196         DFMonad
197         Dataflow
198         MkZipCfg
199         MkZipCfgCmm
200         OptimizationFuel
201         PprC
202         PprCmm
203         PprCmmZ
204         StackColor
205         StackPlacements
206         ZipCfg
207         ZipCfgCmmRep
208         ZipCfgExtras
209         ZipDataflow
210         Bitmap
211         CgBindery
212         CgCallConv
213         CgCase
214         CgClosure
215         CgCon
216         CgExpr
217         CgExtCode
218         CgForeignCall
219         CgHeapery
220         CgHpc
221         CgInfoTbls
222         CgLetNoEscape
223         CgMonad
224         CgParallel
225         CgPrimOp
226         CgProf
227         CgStackery
228         CgTailCall
229         CgTicky
230         CgUtils
231         StgCmm
232         StgCmmBind
233         StgCmmClosure
234         StgCmmCon
235         StgCmmEnv
236         StgCmmExpr
237         StgCmmForeign
238         StgCmmGran
239         StgCmmHeap
240         StgCmmHpc
241         StgCmmLayout
242         StgCmmMonad
243         StgCmmPrim
244         StgCmmProf
245         StgCmmTicky
246         StgCmmUtils
247         ClosureInfo
248         CodeGen
249         SMRep
250         CoreArity
251         CoreFVs
252         CoreLint
253         CorePrep
254         CoreSubst
255         CoreSyn
256         CoreTidy
257         CoreUnfold
258         CoreUtils
259         ExternalCore
260         MkCore
261         MkExternalCore
262         PprCore
263         PprExternalCore
264         Check
265         Coverage
266         Desugar
267         DsArrows
268         DsBinds
269         DsCCall
270         DsExpr
271         DsForeign
272         DsGRHSs
273         DsListComp
274         DsMonad
275         DsUtils
276         Match
277         MatchCon
278         MatchLit
279         HsBinds
280         HsDecls
281         HsDoc
282         HsExpr
283         HsImpExp
284         HsLit
285         HsPat
286         HsSyn
287         HsTypes
288         HsUtils
289         BinIface
290         BuildTyCl
291         IfaceEnv
292         IfaceSyn
293         IfaceType
294         LoadIface
295         MkIface
296         TcIface
297         Annotations
298         BreakArray
299         CmdLineParser
300         CodeOutput
301         Config
302         Constants
303         DriverMkDepend
304         DriverPhases
305         DriverPipeline
306         DynFlags
307         ErrUtils
308         Finder
309         GHC
310         HeaderInfo
311         HscMain
312         HscStats
313         HscTypes
314         InteractiveEval
315         PackageConfig
316         Packages
317         PprTyThing
318         StaticFlags
319         StaticFlagParser
320         SysTools
321         TidyPgm
322         Ctype
323         HaddockUtils
324         LexCore
325         Lexer
326         OptCoercion
327         Parser
328         ParserCore
329         ParserCoreUtils
330         RdrHsSyn
331         ForeignCall
332         PrelInfo
333         PrelNames
334         PrelRules
335         PrimOp
336         TysPrim
337         TysWiredIn
338         CostCentre
339         SCCfinal
340         RnBinds
341         RnEnv
342         RnExpr
343         RnHsDoc
344         RnHsSyn
345         RnNames
346         RnPat
347         RnSource
348         RnTypes
349         CoreMonad
350         CSE
351         FloatIn
352         FloatOut
353         LiberateCase
354         OccurAnal
355         SAT
356         SetLevels
357         SimplCore
358         SimplEnv
359         SimplMonad
360         SimplUtils
361         Simplify
362         SRT
363         SimplStg
364         StgStats
365         Rules
366         SpecConstr
367         Specialise
368         CoreToStg
369         StgLint
370         StgSyn
371         DmdAnal
372         WorkWrap
373         WwLib
374         FamInst
375         Inst
376         TcAnnotations
377         TcArrows
378         TcBinds
379         TcClassDcl
380         TcDefaults
381         TcDeriv
382         TcEnv
383         TcExpr
384         TcForeign
385         TcGenDeriv
386         TcHsSyn
387         TcHsType
388         TcInstDcls
389         TcMType
390         TcMatches
391         TcPat
392         TcRnDriver
393         TcRnMonad
394         TcRnTypes
395         TcRules
396         TcSimplify
397         TcTyClsDecls
398         TcTyDecls
399         TcTyFuns
400         TcType
401         TcUnify
402         Class
403         Coercion
404         FamInstEnv
405         FunDeps
406         Generics
407         InstEnv
408         TyCon
409         Type
410         TypeRep
411         Unify
412         Bag
413         Binary
414         BufWrite
415         Digraph
416         Encoding
417         FastBool
418         FastFunctions
419         FastMutInt
420         FastString
421         FastTypes
422         Fingerprint
423         FiniteMap
424         GraphBase
425         GraphColor
426         GraphOps
427         GraphPpr
428         IOEnv
429         Interval
430         ListSetOps
431         Maybes
432         MonadUtils
433         OrdList
434         Outputable
435         Panic
436         Pretty
437         Serialized
438         State
439         StringBuffer
440         UniqFM
441         UniqSet
442         Util
443         VectBuiltIn
444         VectCore
445         VectMonad
446         VectType
447         VectUtils
448         Vectorise
449
450     if flag(ncg)
451         hs-source-dirs:
452             nativeGen
453
454         Exposed-Modules:
455             AsmCodeGen
456             TargetReg
457             NCGMonad
458             Instruction
459             Size
460             Reg
461             RegClass
462             PprBase
463             PIC
464             Platform
465             Alpha.Regs
466             Alpha.RegInfo
467             Alpha.Instr
468             Alpha.CodeGen
469             X86.Regs
470             X86.RegInfo
471             X86.Instr
472             X86.Cond
473             X86.Ppr
474             X86.CodeGen
475             PPC.Regs
476             PPC.RegInfo
477             PPC.Instr
478             PPC.Cond
479             PPC.Ppr
480             PPC.CodeGen
481             SPARC.Base
482             SPARC.Regs
483             SPARC.RegPlate
484             SPARC.Imm
485             SPARC.AddrMode
486             SPARC.Cond
487             SPARC.Instr
488             SPARC.Stack
489             SPARC.ShortcutJump
490             SPARC.Ppr
491             SPARC.CodeGen
492             SPARC.CodeGen.Amode
493             SPARC.CodeGen.Base
494             SPARC.CodeGen.CCall
495             SPARC.CodeGen.CondCode
496             SPARC.CodeGen.Gen32
497             SPARC.CodeGen.Gen64
498             SPARC.CodeGen.Sanity
499             SPARC.CodeGen.Expand
500             RegAlloc.Liveness
501             RegAlloc.Graph.Main
502             RegAlloc.Graph.Stats
503             RegAlloc.Graph.ArchBase
504             RegAlloc.Graph.ArchX86
505             RegAlloc.Graph.Coalesce
506             RegAlloc.Graph.Spill
507             RegAlloc.Graph.SpillClean
508             RegAlloc.Graph.SpillCost
509             RegAlloc.Graph.TrivColorable
510             RegAlloc.Linear.Main
511             RegAlloc.Linear.JoinToTargets
512             RegAlloc.Linear.State
513             RegAlloc.Linear.Stats
514             RegAlloc.Linear.FreeRegs
515             RegAlloc.Linear.StackMap
516             RegAlloc.Linear.Base
517             RegAlloc.Linear.X86.FreeRegs
518             RegAlloc.Linear.PPC.FreeRegs
519             RegAlloc.Linear.SPARC.FreeRegs
520
521     if flag(ghci)
522         Exposed-Modules:
523             DsMeta
524             TcSplice
525             Convert
526             ByteCodeAsm
527             ByteCodeFFI
528             ByteCodeGen
529             ByteCodeInstr
530             ByteCodeItbls
531             ByteCodeLink
532             Debugger
533             LibFFI
534             Linker
535             ObjLink
536             RtClosureInspect
537