6d83150eb683871ae6d2bcc8079d79e199eca0cd
[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         CmmCvt
177         CmmExpr
178         CmmInfo
179         CmmLex
180         CmmLint
181         CmmLive
182         CmmMachOp
183         CmmNode
184         CmmOpt
185         CmmParse
186         CmmProcPoint
187         CmmRewriteAssignments
188         CmmSink
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         CodeGen.Platform
204         CodeGen.Platform.ARM
205         CodeGen.Platform.NoRegs
206         CodeGen.Platform.PPC
207         CodeGen.Platform.PPC_Darwin
208         CodeGen.Platform.SPARC
209         CodeGen.Platform.X86
210         CodeGen.Platform.X86_64
211         CgBindery
212         CgCallConv
213         CgCase
214         CgClosure
215         CgCon
216         CgExpr
217         CgExtCode
218         CgForeignCall
219         CgHeapery
220         CgHpc
221         CgInfoTbls
222         CgLetNoEscape
223         CgMonad
224         CgParallel
225         CgPrimOp
226         CgProf
227         CgStackery
228         CgTailCall
229         CgTicky
230         CgUtils
231         StgCmm
232         StgCmmBind
233         StgCmmClosure
234         StgCmmCon
235         StgCmmEnv
236         StgCmmExpr
237         StgCmmForeign
238         StgCmmGran
239         StgCmmHeap
240         StgCmmHpc
241         StgCmmLayout
242         StgCmmMonad
243         StgCmmPrim
244         StgCmmProf
245         StgCmmTicky
246         StgCmmUtils
247         ClosureInfo
248         SMRep
249         CoreArity
250         CoreFVs
251         CoreLint
252         CorePrep
253         CoreSubst
254         CoreSyn
255         TrieMap
256         CoreTidy
257         CoreUnfold
258         CoreUtils
259         ExternalCore
260         MkCore
261         MkExternalCore
262         PprCore
263         PprExternalCore
264         Check
265         Coverage
266         Desugar
267         DsArrows
268         DsBinds
269         DsCCall
270         DsExpr
271         DsForeign
272         DsGRHSs
273         DsListComp
274         DsMonad
275         DsUtils
276         Match
277         MatchCon
278         MatchLit
279         HsBinds
280         HsDecls
281         HsDoc
282         HsExpr
283         HsImpExp
284         HsLit
285         HsPat
286         HsSyn
287         HsTypes
288         HsUtils
289         BinIface
290         BuildTyCl
291         IfaceEnv
292         IfaceSyn
293         IfaceType
294         LoadIface
295         MkIface
296         TcIface
297         FlagChecker
298         Annotations
299         BreakArray
300         CmdLineParser
301         CodeOutput
302         Config
303         Constants
304         DriverMkDepend
305         DriverPhases
306         DriverPipeline
307         DynFlags
308         ErrUtils
309         Finder
310         GHC
311         GhcMake
312         GhcPlugins
313         DynamicLoading
314         HeaderInfo
315         HscMain
316         HscStats
317         HscTypes
318         InteractiveEval
319         PackageConfig
320         Packages
321         PprTyThing
322         StaticFlags
323         StaticFlagParser
324         SysTools
325         TidyPgm
326         Ctype
327         HaddockUtils
328         LexCore
329         Lexer
330         OptCoercion
331         Parser
332         ParserCore
333         ParserCoreUtils
334         RdrHsSyn
335         ForeignCall
336         PrelInfo
337         PrelNames
338         PrelRules
339         PrimOp
340         TysPrim
341         TysWiredIn
342         CostCentre
343         ProfInit
344         SCCfinal
345         RnBinds
346         RnEnv
347         RnExpr
348         RnHsDoc
349         RnNames
350         RnPat
351         RnSource
352         RnTypes
353         CoreMonad
354         CSE
355         FloatIn
356         FloatOut
357         LiberateCase
358         OccurAnal
359         SAT
360         SetLevels
361         SimplCore
362         SimplEnv
363         SimplMonad
364         SimplUtils
365         Simplify
366         SimplStg
367         StgStats
368         UnariseStg
369         Rules
370         SpecConstr
371         Specialise
372         CoreToStg
373         StgLint
374         StgSyn
375         DmdAnal
376         WorkWrap
377         WwLib
378         FamInst
379         Inst
380         TcAnnotations
381         TcArrows
382         TcBinds
383         TcClassDcl
384         TcDefaults
385         TcDeriv
386         TcEnv
387         TcExpr
388         TcForeign
389         TcGenDeriv
390         TcGenGenerics
391         TcHsSyn
392         TcHsType
393         TcInstDcls
394         TcMType
395         TcMatches
396         TcPat
397         TcRnDriver
398         TcRnMonad
399         TcRnTypes
400         TcRules
401         TcSimplify
402         TcErrors
403         TcTyClsDecls
404         TcTyDecls
405         TcType
406         TcEvidence
407         TcUnify
408         TcInteract
409         TcCanonical
410         TcSMonad
411         Class
412         Coercion
413         FamInstEnv
414         FunDeps
415         InstEnv
416         TyCon
417         Kind
418         Type
419         TypeRep
420         Unify
421         Bag
422         Binary
423         BufWrite
424         Digraph
425         Encoding
426         FastBool
427         FastFunctions
428         FastMutInt
429         FastString
430         FastTypes
431         Fingerprint
432         FiniteMap
433         GraphBase
434         GraphColor
435         GraphOps
436         GraphPpr
437         IOEnv
438         ListSetOps
439         Maybes
440         MonadUtils
441         OrdList
442         Outputable
443         Pair
444         Panic
445         Pretty
446         Serialized
447         State
448         Stream
449         StringBuffer
450         UniqFM
451         UniqSet
452         Util
453         Vectorise.Builtins.Base
454         Vectorise.Builtins.Initialise
455         Vectorise.Builtins
456         Vectorise.Monad.Base
457         Vectorise.Monad.Naming
458         Vectorise.Monad.Local
459         Vectorise.Monad.Global
460         Vectorise.Monad.InstEnv
461         Vectorise.Monad
462         Vectorise.Utils.Base
463         Vectorise.Utils.Closure
464         Vectorise.Utils.Hoisting
465         Vectorise.Utils.PADict
466         Vectorise.Utils.Poly
467         Vectorise.Utils
468         Vectorise.Generic.Description
469         Vectorise.Generic.PAMethods
470         Vectorise.Generic.PADict
471         Vectorise.Generic.PData
472         Vectorise.Type.Env
473         Vectorise.Type.Type
474         Vectorise.Type.TyConDecl
475         Vectorise.Type.Classify
476         Vectorise.Convert
477         Vectorise.Vect
478         Vectorise.Var
479         Vectorise.Env
480         Vectorise.Exp
481         Vectorise
482         Hoopl.Dataflow
483         Hoopl
484
485     Exposed-Modules:
486             AsmCodeGen
487             TargetReg
488             NCGMonad
489             Instruction
490             Size
491             Reg
492             RegClass
493             PIC
494             Platform
495             CPrim
496             X86.Regs
497             X86.RegInfo
498             X86.Instr
499             X86.Cond
500             X86.Ppr
501             X86.CodeGen
502             PPC.Regs
503             PPC.RegInfo
504             PPC.Instr
505             PPC.Cond
506             PPC.Ppr
507             PPC.CodeGen
508             SPARC.Base
509             SPARC.Regs
510             SPARC.Imm
511             SPARC.AddrMode
512             SPARC.Cond
513             SPARC.Instr
514             SPARC.Stack
515             SPARC.ShortcutJump
516             SPARC.Ppr
517             SPARC.CodeGen
518             SPARC.CodeGen.Amode
519             SPARC.CodeGen.Base
520             SPARC.CodeGen.CondCode
521             SPARC.CodeGen.Gen32
522             SPARC.CodeGen.Gen64
523             SPARC.CodeGen.Sanity
524             SPARC.CodeGen.Expand
525             RegAlloc.Liveness
526             RegAlloc.Graph.Main
527             RegAlloc.Graph.Stats
528             RegAlloc.Graph.ArchBase
529             RegAlloc.Graph.ArchX86
530             RegAlloc.Graph.Coalesce
531             RegAlloc.Graph.Spill
532             RegAlloc.Graph.SpillClean
533             RegAlloc.Graph.SpillCost
534             RegAlloc.Graph.TrivColorable
535             RegAlloc.Linear.Main
536             RegAlloc.Linear.JoinToTargets
537             RegAlloc.Linear.State
538             RegAlloc.Linear.Stats
539             RegAlloc.Linear.FreeRegs
540             RegAlloc.Linear.StackMap
541             RegAlloc.Linear.Base
542             RegAlloc.Linear.X86.FreeRegs
543             RegAlloc.Linear.X86_64.FreeRegs
544             RegAlloc.Linear.PPC.FreeRegs
545             RegAlloc.Linear.SPARC.FreeRegs
546
547     if flag(ghci)
548         Exposed-Modules:
549             DsMeta
550             TcSplice
551             Convert
552             ByteCodeAsm
553             ByteCodeGen
554             ByteCodeInstr
555             ByteCodeItbls
556             ByteCodeLink
557             Debugger
558             LibFFI
559             Linker
560             ObjLink
561             RtClosureInspect
562             DebuggerUtils