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