Hurrah! This major commit adds support for scoped kind variables,
[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(stage1) && impl(ghc < 7.5)
65         Build-Depends: old-time   >= 1   && < 1.2
66
67     if flag(base3) || flag(base4)
68         Build-Depends: directory  >= 1   && < 1.2,
69                        process    >= 1   && < 1.2,
70                        bytestring >= 0.9 && < 0.11,
71                        time                 < 1.5,
72                        containers >= 0.1 && < 0.6,
73                        array      >= 0.1 && < 0.5
74
75     Build-Depends: filepath >= 1 && < 1.4
76     Build-Depends: Cabal, hpc
77     if os(windows)
78         Build-Depends: Win32
79     else
80         Build-Depends: unix
81
82     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
83
84     if flag(ghci)
85         Build-Depends: template-haskell
86         CPP-Options: -DGHCI
87         Include-Dirs: ../rts/dist/build
88
89     Build-Depends: bin-package-db
90     Build-Depends: hoopl
91
92     -- GHC 6.4.2 needs to be able to find WCsubst.c, which needs to be
93     -- able to find WCsubst.h
94     Include-Dirs: ../libraries/base/cbits, ../libraries/base/include
95
96     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
97                 ForeignFunctionInterface, EmptyDataDecls,
98                 TypeSynonymInstances, MultiParamTypeClasses,
99                 FlexibleInstances, Rank2Types, ScopedTypeVariables,
100                 DeriveDataTypeable, BangPatterns
101     if impl(ghc >= 7.1)
102         Extensions: NondecreasingIndentation
103
104     Include-Dirs: . parser utils
105
106     if flag(stage1)
107         Include-Dirs: stage1
108     else
109         if flag(stage2)
110             Include-Dirs: stage2
111         else
112             if flag(stage3)
113                 Include-Dirs: stage2
114
115     Install-Includes: HsVersions.h, ghc_boot_platform.h
116
117     c-sources:
118         parser/cutils.c
119         utils/md5.c
120
121     if flag(dynlibs)
122         c-sources:
123             ghci/keepCAFsForGHCi.c
124
125     hs-source-dirs:
126         basicTypes
127         cmm
128         codeGen
129         coreSyn
130         deSugar
131         ghci
132         hsSyn
133         iface
134         llvmGen
135         main
136         nativeGen
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         Avail
153         BasicTypes
154         DataCon
155         Demand
156         Exception
157         GhcMonad
158         Id
159         IdInfo
160         Literal
161         Llvm
162         Llvm.AbsSyn
163         Llvm.PpLlvm
164         Llvm.Types
165         LlvmCodeGen
166         LlvmCodeGen.Base
167         LlvmCodeGen.CodeGen
168         LlvmCodeGen.Data
169         LlvmCodeGen.Ppr
170         LlvmCodeGen.Regs
171         LlvmMangler
172         MkId
173         Module
174         Name
175         NameEnv
176         NameSet
177         OccName
178         RdrName
179         SrcLoc
180         UniqSupply
181         Unique
182         Var
183         VarEnv
184         VarSet
185         BlockId
186         CLabel
187         Cmm
188         CmmBuildInfoTables
189         CmmPipeline
190         CmmCallConv
191         CmmCommonBlockElim
192         CmmContFlowOpt
193         CmmCvt
194         CmmExpr
195         CmmInfo
196         CmmLex
197         CmmLint
198         CmmLive
199         CmmMachOp
200         CmmNode
201         CmmOpt
202         CmmParse
203         CmmProcPoint
204         CmmSpillReload
205         CmmRewriteAssignments
206         CmmStackLayout
207         CmmType
208         CmmUtils
209         MkGraph
210         OldCmm
211         OldCmmUtils
212         OldPprCmm
213         OptimizationFuel
214         PprBase
215         PprC
216         PprCmm
217         PprCmmDecl
218         PprCmmExpr
219         Bitmap
220         CgBindery
221         CgCallConv
222         CgCase
223         CgClosure
224         CgCon
225         CgExpr
226         CgExtCode
227         CgForeignCall
228         CgHeapery
229         CgHpc
230         CgInfoTbls
231         CgLetNoEscape
232         CgMonad
233         CgParallel
234         CgPrimOp
235         CgProf
236         CgStackery
237         CgTailCall
238         CgTicky
239         CgUtils
240         StgCmm
241         StgCmmBind
242         StgCmmClosure
243         StgCmmCon
244         StgCmmEnv
245         StgCmmExpr
246         StgCmmForeign
247         StgCmmGran
248         StgCmmHeap
249         StgCmmHpc
250         StgCmmLayout
251         StgCmmMonad
252         StgCmmPrim
253         StgCmmProf
254         StgCmmTicky
255         StgCmmUtils
256         ClosureInfo
257         CodeGen
258         SMRep
259         CoreArity
260         CoreFVs
261         CoreLint
262         CorePrep
263         CoreSubst
264         CoreSyn
265         TrieMap
266         CoreTidy
267         CoreUnfold
268         CoreUtils
269         ExternalCore
270         MkCore
271         MkExternalCore
272         PprCore
273         PprExternalCore
274         Check
275         Coverage
276         Desugar
277         DsArrows
278         DsBinds
279         DsCCall
280         DsExpr
281         DsForeign
282         DsGRHSs
283         DsListComp
284         DsMonad
285         DsUtils
286         Match
287         MatchCon
288         MatchLit
289         HsBinds
290         HsDecls
291         HsDoc
292         HsExpr
293         HsImpExp
294         HsLit
295         HsPat
296         HsSyn
297         HsTypes
298         HsUtils
299         BinIface
300         BuildTyCl
301         IfaceEnv
302         IfaceSyn
303         IfaceType
304         LoadIface
305         MkIface
306         TcIface
307         FlagChecker
308         Annotations
309         BreakArray
310         CmdLineParser
311         CodeOutput
312         Config
313         Constants
314         DriverMkDepend
315         DriverPhases
316         DriverPipeline
317         DynFlags
318         ErrUtils
319         Finder
320         GHC
321         GhcMake
322         GhcPlugins
323         DynamicLoading
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         ProfInit
354         SCCfinal
355         RnBinds
356         RnEnv
357         RnExpr
358         RnHsDoc
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         TcGenGenerics
401         TcHsSyn
402         TcHsType
403         TcInstDcls
404         TcMType
405         TcMatches
406         TcPat
407         TcRnDriver
408         TcRnMonad
409         TcRnTypes
410         TcRules
411         TcSimplify
412         TcErrors
413         TcTyClsDecls
414         TcTyDecls
415         TcType
416         TcEvidence
417         TcUnify
418         TcInteract
419         TcCanonical
420         TcSMonad
421         Class
422         IParam
423         Coercion
424         FamInstEnv
425         FunDeps
426         InstEnv
427         TyCon
428         Kind
429         Type
430         TypeRep
431         Unify
432         Bag
433         Binary
434         BufWrite
435         Digraph
436         Encoding
437         FastBool
438         FastFunctions
439         FastMutInt
440         FastString
441         FastTypes
442         Fingerprint
443         FiniteMap
444         GraphBase
445         GraphColor
446         GraphOps
447         GraphPpr
448         IOEnv
449         ListSetOps
450         Maybes
451         MonadUtils
452         OrdList
453         Outputable
454         Pair
455         Panic
456         Pretty
457         Serialized
458         State
459         StringBuffer
460         UniqFM
461         UniqSet
462         Util
463         Vectorise.Builtins.Base
464         Vectorise.Builtins.Initialise
465         Vectorise.Builtins
466         Vectorise.Monad.Base
467         Vectorise.Monad.Naming
468         Vectorise.Monad.Local
469         Vectorise.Monad.Global
470         Vectorise.Monad.InstEnv
471         Vectorise.Monad
472         Vectorise.Utils.Base
473         Vectorise.Utils.Closure
474         Vectorise.Utils.Hoisting
475         Vectorise.Utils.PADict
476         Vectorise.Utils.Poly
477         Vectorise.Utils
478         Vectorise.Generic.Description
479         Vectorise.Generic.PAMethods
480         Vectorise.Generic.PADict
481         Vectorise.Generic.PData
482         Vectorise.Type.Env
483         Vectorise.Type.Type
484         Vectorise.Type.TyConDecl
485         Vectorise.Type.Classify
486         Vectorise.Convert
487         Vectorise.Vect
488         Vectorise.Var
489         Vectorise.Env
490         Vectorise.Exp
491         Vectorise
492
493     Exposed-Modules:
494             AsmCodeGen
495             TargetReg
496             NCGMonad
497             Instruction
498             Size
499             Reg
500             RegClass
501             PIC
502             Platform
503             CPrim
504             X86.Regs
505             X86.RegInfo
506             X86.Instr
507             X86.Cond
508             X86.Ppr
509             X86.CodeGen
510             PPC.Regs
511             PPC.RegInfo
512             PPC.Instr
513             PPC.Cond
514             PPC.Ppr
515             PPC.CodeGen
516             SPARC.Base
517             SPARC.Regs
518             SPARC.RegPlate
519             SPARC.Imm
520             SPARC.AddrMode
521             SPARC.Cond
522             SPARC.Instr
523             SPARC.Stack
524             SPARC.ShortcutJump
525             SPARC.Ppr
526             SPARC.CodeGen
527             SPARC.CodeGen.Amode
528             SPARC.CodeGen.Base
529             SPARC.CodeGen.CondCode
530             SPARC.CodeGen.Gen32
531             SPARC.CodeGen.Gen64
532             SPARC.CodeGen.Sanity
533             SPARC.CodeGen.Expand
534             RegAlloc.Liveness
535             RegAlloc.Graph.Main
536             RegAlloc.Graph.Stats
537             RegAlloc.Graph.ArchBase
538             RegAlloc.Graph.ArchX86
539             RegAlloc.Graph.Coalesce
540             RegAlloc.Graph.Spill
541             RegAlloc.Graph.SpillClean
542             RegAlloc.Graph.SpillCost
543             RegAlloc.Graph.TrivColorable
544             RegAlloc.Linear.Main
545             RegAlloc.Linear.JoinToTargets
546             RegAlloc.Linear.State
547             RegAlloc.Linear.Stats
548             RegAlloc.Linear.FreeRegs
549             RegAlloc.Linear.StackMap
550             RegAlloc.Linear.Base
551             RegAlloc.Linear.X86.FreeRegs
552             RegAlloc.Linear.PPC.FreeRegs
553             RegAlloc.Linear.SPARC.FreeRegs
554
555     if flag(ghci)
556         Exposed-Modules:
557             DsMeta
558             TcSplice
559             Convert
560             ByteCodeAsm
561             ByteCodeGen
562             ByteCodeInstr
563             ByteCodeItbls
564             ByteCodeLink
565             Debugger
566             LibFFI
567             Linker
568             ObjLink
569             RtClosureInspect
570             DebuggerUtils