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