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