Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/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                    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         StgCmmGran
212         StgCmmHeap
213         StgCmmHpc
214         StgCmmArgRep
215         StgCmmLayout
216         StgCmmMonad
217         StgCmmPrim
218         StgCmmProf
219         StgCmmTicky
220         StgCmmUtils
221         StgCmmExtCode
222         SMRep
223         CoreArity
224         CoreFVs
225         CoreLint
226         CorePrep
227         CoreSubst
228         CoreSyn
229         TrieMap
230         CoreTidy
231         CoreUnfold
232         CoreUtils
233         ExternalCore
234         MkCore
235         MkExternalCore
236         PprCore
237         PprExternalCore
238         Check
239         Coverage
240         Desugar
241         DsArrows
242         DsBinds
243         DsCCall
244         DsExpr
245         DsForeign
246         DsGRHSs
247         DsListComp
248         DsMonad
249         DsUtils
250         Match
251         MatchCon
252         MatchLit
253         HsBinds
254         HsDecls
255         HsDoc
256         HsExpr
257         HsImpExp
258         HsLit
259         HsPat
260         HsSyn
261         HsTypes
262         HsUtils
263         BinIface
264         BuildTyCl
265         IfaceEnv
266         IfaceSyn
267         IfaceType
268         LoadIface
269         MkIface
270         TcIface
271         FlagChecker
272         Annotations
273         BreakArray
274         CmdLineParser
275         CodeOutput
276         Config
277         Constants
278         DriverMkDepend
279         DriverPhases
280         DriverPipeline
281         DynFlags
282         ErrUtils
283         Finder
284         GHC
285         GhcMake
286         GhcPlugins
287         DynamicLoading
288         HeaderInfo
289         HscMain
290         HscStats
291         HscTypes
292         InteractiveEval
293         InteractiveEvalTypes
294         PackageConfig
295         Packages
296         PlatformConstants
297         PprTyThing
298         StaticFlags
299         SysTools
300         TidyPgm
301         Ctype
302         HaddockUtils
303         LexCore
304         Lexer
305         OptCoercion
306         Parser
307         ParserCore
308         ParserCoreUtils
309         RdrHsSyn
310         ForeignCall
311         PrelInfo
312         PrelNames
313         PrelRules
314         PrimOp
315         TysPrim
316         TysWiredIn
317         CostCentre
318         ProfInit
319         SCCfinal
320         RnBinds
321         RnEnv
322         RnExpr
323         RnHsDoc
324         RnNames
325         RnPat
326         RnSource
327         RnTypes
328         CoreMonad
329         CSE
330         FloatIn
331         FloatOut
332         LiberateCase
333         OccurAnal
334         SAT
335         SetLevels
336         SimplCore
337         SimplEnv
338         SimplMonad
339         SimplUtils
340         Simplify
341         SimplStg
342         StgStats
343         UnariseStg
344         Rules
345         SpecConstr
346         Specialise
347         CoreToStg
348         StgLint
349         StgSyn
350         DmdAnal
351         WorkWrap
352         WwLib
353         FamInst
354         Inst
355         TcAnnotations
356         TcArrows
357         TcBinds
358         TcClassDcl
359         TcDefaults
360         TcDeriv
361         TcEnv
362         TcExpr
363         TcForeign
364         TcGenDeriv
365         TcGenGenerics
366         TcHsSyn
367         TcHsType
368         TcInstDcls
369         TcMType
370         TcValidity
371         TcMatches
372         TcPat
373         TcRnDriver
374         TcRnMonad
375         TcRnTypes
376         TcRules
377         TcSimplify
378         TcErrors
379         TcTyClsDecls
380         TcTyDecls
381         TcType
382         TcEvidence
383         TcUnify
384         TcInteract
385         TcCanonical
386         TcSMonad
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         BufWrite
401         Digraph
402         Encoding
403         FastBool
404         FastFunctions
405         FastMutInt
406         FastString
407         FastTypes
408         Fingerprint
409         FiniteMap
410         GraphBase
411         GraphColor
412         GraphOps
413         GraphPpr
414         IOEnv
415         ListSetOps
416         Maybes
417         MonadUtils
418         OrdList
419         Outputable
420         Pair
421         Panic
422         Pretty
423         Serialized
424         State
425         Stream
426         StringBuffer
427         UniqFM
428         UniqSet
429         Util
430         Vectorise.Builtins.Base
431         Vectorise.Builtins.Initialise
432         Vectorise.Builtins
433         Vectorise.Monad.Base
434         Vectorise.Monad.Naming
435         Vectorise.Monad.Local
436         Vectorise.Monad.Global
437         Vectorise.Monad.InstEnv
438         Vectorise.Monad
439         Vectorise.Utils.Base
440         Vectorise.Utils.Closure
441         Vectorise.Utils.Hoisting
442         Vectorise.Utils.PADict
443         Vectorise.Utils.Poly
444         Vectorise.Utils
445         Vectorise.Generic.Description
446         Vectorise.Generic.PAMethods
447         Vectorise.Generic.PADict
448         Vectorise.Generic.PData
449         Vectorise.Type.Env
450         Vectorise.Type.Type
451         Vectorise.Type.TyConDecl
452         Vectorise.Type.Classify
453         Vectorise.Convert
454         Vectorise.Vect
455         Vectorise.Var
456         Vectorise.Env
457         Vectorise.Exp
458         Vectorise
459         Hoopl.Dataflow
460         Hoopl
461
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