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