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