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