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