Change the representation of the package database
[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.3,
72                        array      >= 0.1 && < 0.3
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         if impl(ghc < 6.9)
108             Build-Depends: extensible-exceptions
109             Extensions: PatternSignatures
110     else
111         if flag(stage2)
112             Include-Dirs: stage2
113         else
114             if flag(stage3)
115                 Include-Dirs: stage2
116
117     Install-Includes: HsVersions.h, ghc_boot_platform.h
118
119     c-sources:
120         parser/cutils.c
121         utils/md5.c
122
123     if flag(dynlibs)
124         c-sources:
125             ghci/keepCAFsForGHCi.c
126
127     hs-source-dirs:
128         basicTypes
129         cmm
130         codeGen
131         coreSyn
132         cprAnalysis
133         deSugar
134         ghci
135         hsSyn
136         iface
137         main
138         parser
139         prelude
140         profiling
141         rename
142         simplCore
143         simplStg
144         specialise
145         stgSyn
146         stranal
147         typecheck
148         types
149         utils
150         vectorise
151
152     Exposed-Modules:
153         BasicTypes
154         DataCon
155         Demand
156         Exception
157         Id
158         IdInfo
159         Literal
160         MkId
161         Module
162         Name
163         NameEnv
164         NameSet
165         NewDemand
166         OccName
167         RdrName
168         SrcLoc
169         UniqSupply
170         Unique
171         Var
172         VarEnv
173         VarSet
174         BlockId
175         CLabel
176         Cmm
177         CmmBrokenBlock
178         CmmBuildInfoTables
179         CmmCPS
180         CmmCPSGen
181         CmmCPSZ
182         CmmCallConv
183         CmmCommonBlockElimZ
184         CmmContFlowOpt
185         CmmCvt
186         CmmExpr
187         CmmInfo
188         CmmLex
189         CmmLint
190         CmmLive
191         CmmLiveZ
192         CmmOpt
193         CmmParse
194         CmmProcPoint
195         CmmProcPointZ
196         CmmSpillReload
197         CmmStackLayout
198         CmmTx
199         CmmUtils
200         CmmZipUtil
201         DFMonad
202         Dataflow
203         MkZipCfg
204         MkZipCfgCmm
205         OptimizationFuel
206         PprC
207         PprCmm
208         PprCmmZ
209         StackColor
210         StackPlacements
211         ZipCfg
212         ZipCfgCmmRep
213         ZipCfgExtras
214         ZipDataflow
215         Bitmap
216         CgBindery
217         CgCallConv
218         CgCase
219         CgClosure
220         CgCon
221         CgExpr
222         CgForeignCall
223         CgHeapery
224         CgHpc
225         CgInfoTbls
226         CgLetNoEscape
227         CgMonad
228         CgParallel
229         CgPrimOp
230         CgProf
231         CgStackery
232         CgTailCall
233         CgTicky
234         CgUtils
235         StgCmm
236         StgCmmBind
237         StgCmmClosure
238         StgCmmCon
239         StgCmmEnv
240         StgCmmExpr
241         StgCmmForeign
242         StgCmmGran
243         StgCmmHeap
244         StgCmmHpc
245         StgCmmLayout
246         StgCmmMonad
247         StgCmmPrim
248         StgCmmProf
249         StgCmmTicky
250         StgCmmUtils
251         ClosureInfo
252         CodeGen
253         SMRep
254         CoreArity
255         CoreFVs
256         CoreLint
257         CorePrep
258         CoreSubst
259         CoreSyn
260         CoreTidy
261         CoreUnfold
262         CoreUtils
263         ExternalCore
264         MkCore
265         MkExternalCore
266         PprCore
267         PprExternalCore
268         CprAnalyse
269         Check
270         Coverage
271         Desugar
272         DsArrows
273         DsBinds
274         DsCCall
275         DsExpr
276         DsForeign
277         DsGRHSs
278         DsListComp
279         DsMonad
280         DsUtils
281         Match
282         MatchCon
283         MatchLit
284         HsBinds
285         HsDecls
286         HsDoc
287         HsExpr
288         HsImpExp
289         HsLit
290         HsPat
291         HsSyn
292         HsTypes
293         HsUtils
294         BinIface
295         BuildTyCl
296         IfaceEnv
297         IfaceSyn
298         IfaceType
299         LoadIface
300         MkIface
301         TcIface
302         Annotations
303         BreakArray
304         CmdLineParser
305         CodeOutput
306         Config
307         Constants
308         DriverMkDepend
309         DriverPhases
310         DriverPipeline
311         DynFlags
312         ErrUtils
313         Finder
314         GHC
315         HeaderInfo
316         HscMain
317         HscStats
318         HscTypes
319         InteractiveEval
320         PackageConfig
321         Packages
322         ParsePkgConf
323         PprTyThing
324         StaticFlags
325         StaticFlagParser
326         SysTools
327         TidyPgm
328         Ctype
329         HaddockUtils
330         LexCore
331         Lexer
332         Parser
333         ParserCore
334         ParserCoreUtils
335         RdrHsSyn
336         ForeignCall
337         PrelInfo
338         PrelNames
339         PrelRules
340         PrimOp
341         TysPrim
342         TysWiredIn
343         CostCentre
344         SCCfinal
345         RnBinds
346         RnEnv
347         RnExpr
348         RnHsDoc
349         RnHsSyn
350         RnNames
351         RnPat
352         RnSource
353         RnTypes
354         CoreMonad
355         CSE
356         FloatIn
357         FloatOut
358         LiberateCase
359         OccurAnal
360         SAT
361         SetLevels
362         SimplCore
363         SimplEnv
364         SimplMonad
365         SimplUtils
366         Simplify
367         SRT
368         SimplStg
369         StgStats
370         Rules
371         SpecConstr
372         Specialise
373         CoreToStg
374         StgLint
375         StgSyn
376         DmdAnal
377         SaAbsInt
378         SaLib
379         StrictAnal
380         WorkWrap
381         WwLib
382         FamInst
383         Inst
384         TcAnnotations
385         TcArrows
386         TcBinds
387         TcClassDcl
388         TcDefaults
389         TcDeriv
390         TcEnv
391         TcExpr
392         TcForeign
393         TcGenDeriv
394         TcHsSyn
395         TcHsType
396         TcInstDcls
397         TcMType
398         TcMatches
399         TcPat
400         TcRnDriver
401         TcRnMonad
402         TcRnTypes
403         TcRules
404         TcSimplify
405         TcTyClsDecls
406         TcTyDecls
407         TcTyFuns
408         TcType
409         TcUnify
410         Class
411         Coercion
412         FamInstEnv
413         FunDeps
414         Generics
415         InstEnv
416         TyCon
417         Type
418         TypeRep
419         Unify
420         Bag
421         Binary
422         BufWrite
423         Digraph
424         Encoding
425         FastBool
426         FastFunctions
427         FastMutInt
428         FastString
429         FastTypes
430         Fingerprint
431         FiniteMap
432         GraphBase
433         GraphColor
434         GraphOps
435         GraphPpr
436         IOEnv
437         Interval
438         LazyUniqFM
439         ListSetOps
440         Maybes
441         MonadUtils
442         OrdList
443         Outputable
444         Panic
445         Pretty
446         Serialized
447         State
448         StringBuffer
449         UniqFM
450         UniqSet
451         Util
452         VectBuiltIn
453         VectCore
454         VectMonad
455         VectType
456         VectUtils
457         Vectorise
458
459     if flag(ncg)
460         hs-source-dirs:
461             nativeGen
462
463         Exposed-Modules:
464             AsmCodeGen
465             TargetReg
466             NCGMonad
467             Instruction
468             Size
469             Reg
470             RegClass
471             PprBase
472             PIC
473             Platform
474             Alpha.Regs
475             Alpha.RegInfo
476             Alpha.Instr
477             Alpha.CodeGen
478             X86.Regs
479             X86.RegInfo
480             X86.Instr
481             X86.Cond
482             X86.Ppr
483             X86.CodeGen
484             PPC.Regs
485             PPC.RegInfo
486             PPC.Instr
487             PPC.Cond
488             PPC.Ppr
489             PPC.CodeGen
490             SPARC.Base
491             SPARC.Regs
492             SPARC.RegPlate
493             SPARC.Imm
494             SPARC.AddrMode
495             SPARC.Cond
496             SPARC.Instr
497             SPARC.Stack
498             SPARC.ShortcutJump
499             SPARC.Ppr
500             SPARC.CodeGen
501             SPARC.CodeGen.Amode
502             SPARC.CodeGen.Base
503             SPARC.CodeGen.CCall
504             SPARC.CodeGen.CondCode
505             SPARC.CodeGen.Gen32
506             SPARC.CodeGen.Gen64
507             SPARC.CodeGen.Sanity
508             SPARC.CodeGen.Expand
509             RegAlloc.Liveness
510             RegAlloc.Graph.Main
511             RegAlloc.Graph.Stats
512             RegAlloc.Graph.ArchBase
513             RegAlloc.Graph.ArchX86
514             RegAlloc.Graph.Coalesce
515             RegAlloc.Graph.Spill
516             RegAlloc.Graph.SpillClean
517             RegAlloc.Graph.SpillCost
518             RegAlloc.Graph.TrivColorable
519             RegAlloc.Linear.Main
520             RegAlloc.Linear.JoinToTargets
521             RegAlloc.Linear.State
522             RegAlloc.Linear.Stats
523             RegAlloc.Linear.FreeRegs
524             RegAlloc.Linear.StackMap
525             RegAlloc.Linear.Base
526             RegAlloc.Linear.X86.FreeRegs
527             RegAlloc.Linear.PPC.FreeRegs
528             RegAlloc.Linear.SPARC.FreeRegs
529
530     if flag(ghci)
531         Exposed-Modules:
532             DsMeta
533             TcSplice
534             Convert
535             ByteCodeAsm
536             ByteCodeFFI
537             ByteCodeGen
538             ByteCodeInstr
539             ByteCodeItbls
540             ByteCodeLink
541             Debugger
542             LibFFI
543             Linker
544             ObjLink
545             RtClosureInspect
546