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