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