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