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