a9d86f88be6a559478a07529ac1aa824cc2144de
[ghc.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 stage1
40     Description: Is this stage 1?
41     Default: False
42     Manual: True
43
44 Flag stage2
45     Description: Is this stage 2?
46     Default: False
47     Manual: True
48
49 Flag stage3
50     Description: Is this stage 3?
51     Default: False
52     Manual: True
53
54 Library
55     Exposed: False
56
57     if flag(base4)
58         Build-Depends: base       >= 4   && < 5
59     if flag(base3)
60         Build-Depends: base       >= 3   && < 4
61     if !flag(base3) && !flag(base4)
62         Build-Depends: base       < 3
63
64     if flag(base3) || flag(base4)
65         Build-Depends: directory  >= 1   && < 1.2,
66                        process    >= 1   && < 1.2,
67                        bytestring >= 0.9 && < 0.10,
68                        old-time   >= 1   && < 1.1,
69                        containers >= 0.1 && < 0.5,
70                        array      >= 0.1 && < 0.4
71
72     Build-Depends: filepath >= 1 && < 1.3
73     Build-Depends: Cabal, hpc
74     if os(windows)
75         Build-Depends: Win32
76     else
77         Build-Depends: unix
78
79     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
80
81     if flag(ghci)
82         Build-Depends: template-haskell
83         CPP-Options: -DGHCI
84         Include-Dirs: ../rts/dist/build
85
86     Build-Depends: bin-package-db
87     Build-Depends: hoopl
88
89     -- GHC 6.4.2 needs to be able to find WCsubst.c, which needs to be
90     -- able to find WCsubst.h
91     Include-Dirs: ../libraries/base/cbits, ../libraries/base/include
92
93     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
94                 ForeignFunctionInterface, EmptyDataDecls,
95                 TypeSynonymInstances, MultiParamTypeClasses,
96                 FlexibleInstances, Rank2Types, ScopedTypeVariables,
97                 DeriveDataTypeable, BangPatterns
98     if impl(ghc >= 7.1)
99         Extensions: NondecreasingIndentation
100
101     Include-Dirs: . parser utils
102
103     if flag(stage1)
104         Include-Dirs: stage1
105     else
106         if flag(stage2)
107             Include-Dirs: stage2
108         else
109             if flag(stage3)
110                 Include-Dirs: stage2
111
112     Install-Includes: HsVersions.h, ghc_boot_platform.h
113
114     c-sources:
115         parser/cutils.c
116         utils/md5.c
117
118     if flag(dynlibs)
119         c-sources:
120             ghci/keepCAFsForGHCi.c
121
122     hs-source-dirs:
123         basicTypes
124         cmm
125         codeGen
126         coreSyn
127         deSugar
128         ghci
129         hsSyn
130         iface
131         llvmGen
132         main
133         nativeGen
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         Avail
150         BasicTypes
151         DataCon
152         Demand
153         Exception
154         GhcMonad
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         CmmBuildInfoTables
186         CmmPipeline
187         CmmCallConv
188         CmmCommonBlockElim
189         CmmContFlowOpt
190         CmmCvt
191         CmmExpr
192         CmmInfo
193         CmmLex
194         CmmLint
195         CmmLive
196         CmmMachOp
197         CmmNode
198         CmmOpt
199         CmmParse
200         CmmProcPoint
201         CmmSpillReload
202         CmmRewriteAssignments
203         CmmStackLayout
204         CmmType
205         CmmUtils
206         MkGraph
207         OldCmm
208         OldCmmUtils
209         OldPprCmm
210         OptimizationFuel
211         PprBase
212         PprC
213         PprCmm
214         PprCmmDecl
215         PprCmmExpr
216         Bitmap
217         CgBindery
218         CgCallConv
219         CgCase
220         CgClosure
221         CgCon
222         CgExpr
223         CgExtCode
224         CgForeignCall
225         CgHeapery
226         CgHpc
227         CgInfoTbls
228         CgLetNoEscape
229         CgMonad
230         CgParallel
231         CgPrimOp
232         CgProf
233         CgStackery
234         CgTailCall
235         CgTicky
236         CgUtils
237         StgCmm
238         StgCmmBind
239         StgCmmClosure
240         StgCmmCon
241         StgCmmEnv
242         StgCmmExpr
243         StgCmmForeign
244         StgCmmGran
245         StgCmmHeap
246         StgCmmHpc
247         StgCmmLayout
248         StgCmmMonad
249         StgCmmPrim
250         StgCmmProf
251         StgCmmTicky
252         StgCmmUtils
253         ClosureInfo
254         CodeGen
255         SMRep
256         CoreArity
257         CoreFVs
258         CoreLint
259         CorePrep
260         CoreSubst
261         CoreSyn
262         TrieMap
263         CoreTidy
264         CoreUnfold
265         CoreUtils
266         ExternalCore
267         MkCore
268         MkExternalCore
269         PprCore
270         PprExternalCore
271         Check
272         Coverage
273         Desugar
274         DsArrows
275         DsBinds
276         DsCCall
277         DsExpr
278         DsForeign
279         DsGRHSs
280         DsListComp
281         DsMonad
282         DsUtils
283         Match
284         MatchCon
285         MatchLit
286         HsBinds
287         HsDecls
288         HsDoc
289         HsExpr
290         HsImpExp
291         HsLit
292         HsPat
293         HsSyn
294         HsTypes
295         HsUtils
296         BinIface
297         BuildTyCl
298         IfaceEnv
299         IfaceSyn
300         IfaceType
301         LoadIface
302         MkIface
303         TcIface
304         FlagChecker
305         Annotations
306         BreakArray
307         CmdLineParser
308         CodeOutput
309         Config
310         Constants
311         DriverMkDepend
312         DriverPhases
313         DriverPipeline
314         DynFlags
315         ErrUtils
316         Finder
317         GHC
318         GhcMake
319         GhcPlugins
320         DynamicLoading
321         HeaderInfo
322         HscMain
323         HscStats
324         HscTypes
325         InteractiveEval
326         PackageConfig
327         Packages
328         PprTyThing
329         StaticFlags
330         StaticFlagParser
331         SysTools
332         TidyPgm
333         Ctype
334         HaddockUtils
335         LexCore
336         Lexer
337         OptCoercion
338         Parser
339         ParserCore
340         ParserCoreUtils
341         RdrHsSyn
342         ForeignCall
343         PrelInfo
344         PrelNames
345         PrelRules
346         PrimOp
347         TysPrim
348         TysWiredIn
349         CostCentre
350         ProfInit
351         SCCfinal
352         RnBinds
353         RnEnv
354         RnExpr
355         RnHsDoc
356         RnHsSyn
357         RnNames
358         RnPat
359         RnSource
360         RnTypes
361         CoreMonad
362         CSE
363         FloatIn
364         FloatOut
365         LiberateCase
366         OccurAnal
367         SAT
368         SetLevels
369         SimplCore
370         SimplEnv
371         SimplMonad
372         SimplUtils
373         Simplify
374         SRT
375         SimplStg
376         StgStats
377         Rules
378         SpecConstr
379         Specialise
380         CoreToStg
381         StgLint
382         StgSyn
383         DmdAnal
384         WorkWrap
385         WwLib
386         FamInst
387         Inst
388         TcAnnotations
389         TcArrows
390         TcBinds
391         TcClassDcl
392         TcDefaults
393         TcDeriv
394         TcEnv
395         TcExpr
396         TcForeign
397         TcGenDeriv
398         TcGenGenerics
399         TcHsSyn
400         TcHsType
401         TcInstDcls
402         TcMType
403         TcMatches
404         TcPat
405         TcRnDriver
406         TcRnMonad
407         TcRnTypes
408         TcRules
409         TcSimplify
410         TcErrors
411         TcTyClsDecls
412         TcTyDecls
413         TcType
414         TcEvidence
415         TcUnify
416         TcInteract
417         TcCanonical
418         TcSMonad
419         Class
420         IParam
421         Coercion
422         FamInstEnv
423         FunDeps
424         InstEnv
425         TyCon
426         Kind
427         Type
428         TypeRep
429         Unify
430         Bag
431         Binary
432         BufWrite
433         Digraph
434         Encoding
435         FastBool
436         FastFunctions
437         FastMutInt
438         FastString
439         FastTypes
440         Fingerprint
441         FiniteMap
442         GraphBase
443         GraphColor
444         GraphOps
445         GraphPpr
446         IOEnv
447         ListSetOps
448         Maybes
449         MonadUtils
450         OrdList
451         Outputable
452         Pair
453         Panic
454         Pretty
455         Serialized
456         State
457         StringBuffer
458         UniqFM
459         UniqSet
460         Util
461         Vectorise.Builtins.Base
462         Vectorise.Builtins.Initialise
463         Vectorise.Builtins
464         Vectorise.Monad.Base
465         Vectorise.Monad.Naming
466         Vectorise.Monad.Local
467         Vectorise.Monad.Global
468         Vectorise.Monad.InstEnv
469         Vectorise.Monad
470         Vectorise.Utils.Base
471         Vectorise.Utils.Closure
472         Vectorise.Utils.Hoisting
473         Vectorise.Utils.PADict
474         Vectorise.Utils.Poly
475         Vectorise.Utils
476         Vectorise.Generic.Description
477         Vectorise.Generic.PAMethods
478         Vectorise.Generic.PADict
479         Vectorise.Generic.PData
480         Vectorise.Type.Env
481         Vectorise.Type.Type
482         Vectorise.Type.TyConDecl
483         Vectorise.Type.Classify
484         Vectorise.Convert
485         Vectorise.Vect
486         Vectorise.Var
487         Vectorise.Env
488         Vectorise.Exp
489         Vectorise
490
491     Exposed-Modules:
492             AsmCodeGen
493             TargetReg
494             NCGMonad
495             Instruction
496             Size
497             Reg
498             RegClass
499             PIC
500             Platform
501             CPrim
502             X86.Regs
503             X86.RegInfo
504             X86.Instr
505             X86.Cond
506             X86.Ppr
507             X86.CodeGen
508             PPC.Regs
509             PPC.RegInfo
510             PPC.Instr
511             PPC.Cond
512             PPC.Ppr
513             PPC.CodeGen
514             SPARC.Base
515             SPARC.Regs
516             SPARC.RegPlate
517             SPARC.Imm
518             SPARC.AddrMode
519             SPARC.Cond
520             SPARC.Instr
521             SPARC.Stack
522             SPARC.ShortcutJump
523             SPARC.Ppr
524             SPARC.CodeGen
525             SPARC.CodeGen.Amode
526             SPARC.CodeGen.Base
527             SPARC.CodeGen.CCall
528             SPARC.CodeGen.CondCode
529             SPARC.CodeGen.Gen32
530             SPARC.CodeGen.Gen64
531             SPARC.CodeGen.Sanity
532             SPARC.CodeGen.Expand
533             RegAlloc.Liveness
534             RegAlloc.Graph.Main
535             RegAlloc.Graph.Stats
536             RegAlloc.Graph.ArchBase
537             RegAlloc.Graph.ArchX86
538             RegAlloc.Graph.Coalesce
539             RegAlloc.Graph.Spill
540             RegAlloc.Graph.SpillClean
541             RegAlloc.Graph.SpillCost
542             RegAlloc.Graph.TrivColorable
543             RegAlloc.Linear.Main
544             RegAlloc.Linear.JoinToTargets
545             RegAlloc.Linear.State
546             RegAlloc.Linear.Stats
547             RegAlloc.Linear.FreeRegs
548             RegAlloc.Linear.StackMap
549             RegAlloc.Linear.Base
550             RegAlloc.Linear.X86.FreeRegs
551             RegAlloc.Linear.PPC.FreeRegs
552             RegAlloc.Linear.SPARC.FreeRegs
553
554     if flag(ghci)
555         Exposed-Modules:
556             DsMeta
557             TcSplice
558             Convert
559             ByteCodeAsm
560             ByteCodeGen
561             ByteCodeInstr
562             ByteCodeItbls
563             ByteCodeLink
564             Debugger
565             LibFFI
566             Linker
567             ObjLink
568             RtClosureInspect
569             DebuggerUtils