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