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