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