Don't track free variables in STG syntax by default
[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         UnariseStg
437         RepType
438         Rules
439         SpecConstr
440         Specialise
441         CoreToStg
442         StgLint
443         StgSyn
444         StgFVs
445         CallArity
446         DmdAnal
447         Exitify
448         WorkWrap
449         WwLib
450         FamInst
451         ClsInst
452         Inst
453         TcAnnotations
454         TcArrows
455         TcBinds
456         TcSigs
457         TcClassDcl
458         TcDefaults
459         TcDeriv
460         TcDerivInfer
461         TcDerivUtils
462         TcEnv
463         TcExpr
464         TcForeign
465         TcGenDeriv
466         TcGenFunctor
467         TcGenGenerics
468         TcHsSyn
469         TcHsType
470         TcInstDcls
471         TcMType
472         TcValidity
473         TcMatches
474         TcPat
475         TcPatSyn
476         TcRnDriver
477         TcBackpack
478         TcRnExports
479         TcRnMonad
480         TcRnTypes
481         TcRules
482         TcSimplify
483         TcHoleErrors
484         TcErrors
485         TcTyClsDecls
486         TcTyDecls
487         TcTypeable
488         TcType
489         TcEvidence
490         TcEvTerm
491         TcUnify
492         TcInteract
493         TcCanonical
494         TcFlatten
495         TcSMonad
496         TcTypeNats
497         TcSplice
498         Class
499         Coercion
500         DsMeta
501         THNames
502         FamInstEnv
503         FunDeps
504         InstEnv
505         TyCon
506         CoAxiom
507         Kind
508         Type
509         TyCoRep
510         Unify
511         Bag
512         Binary
513         BooleanFormula
514         BufWrite
515         Digraph
516         Encoding
517         FastFunctions
518         FastMutInt
519         FastString
520         FastStringEnv
521         Fingerprint
522         FiniteMap
523         FV
524         GraphBase
525         GraphColor
526         GraphOps
527         GraphPpr
528         IOEnv
529         Json
530         ListSetOps
531         ListT
532         Maybes
533         MonadUtils
534         OrdList
535         Outputable
536         Pair
537         Panic
538         PprColour
539         Pretty
540         State
541         Stream
542         StringBuffer
543         UniqDFM
544         UniqDSet
545         UniqFM
546         UniqMap
547         UniqSet
548         Util
549         Hoopl.Block
550         Hoopl.Collections
551         Hoopl.Dataflow
552         Hoopl.Graph
553         Hoopl.Label
554 --        CgInfoTbls used in ghci/DebuggerUtils
555 --        CgHeapery  mkVirtHeapOffsets used in ghci
556
557     Exposed-Modules:
558             AsmCodeGen
559             TargetReg
560             NCGMonad
561             Instruction
562             BlockLayout
563             CFG
564             Format
565             Reg
566             RegClass
567             PIC
568             Platform
569             CPrim
570             X86.Regs
571             X86.RegInfo
572             X86.Instr
573             X86.Cond
574             X86.Ppr
575             X86.CodeGen
576             PPC.Regs
577             PPC.RegInfo
578             PPC.Instr
579             PPC.Cond
580             PPC.Ppr
581             PPC.CodeGen
582             SPARC.Base
583             SPARC.Regs
584             SPARC.Imm
585             SPARC.AddrMode
586             SPARC.Cond
587             SPARC.Instr
588             SPARC.Stack
589             SPARC.ShortcutJump
590             SPARC.Ppr
591             SPARC.CodeGen
592             SPARC.CodeGen.Amode
593             SPARC.CodeGen.Base
594             SPARC.CodeGen.CondCode
595             SPARC.CodeGen.Gen32
596             SPARC.CodeGen.Gen64
597             SPARC.CodeGen.Sanity
598             SPARC.CodeGen.Expand
599             RegAlloc.Liveness
600             RegAlloc.Graph.Main
601             RegAlloc.Graph.Stats
602             RegAlloc.Graph.ArchBase
603             RegAlloc.Graph.ArchX86
604             RegAlloc.Graph.Coalesce
605             RegAlloc.Graph.Spill
606             RegAlloc.Graph.SpillClean
607             RegAlloc.Graph.SpillCost
608             RegAlloc.Graph.TrivColorable
609             RegAlloc.Linear.Main
610             RegAlloc.Linear.JoinToTargets
611             RegAlloc.Linear.State
612             RegAlloc.Linear.Stats
613             RegAlloc.Linear.FreeRegs
614             RegAlloc.Linear.StackMap
615             RegAlloc.Linear.Base
616             RegAlloc.Linear.X86.FreeRegs
617             RegAlloc.Linear.X86_64.FreeRegs
618             RegAlloc.Linear.PPC.FreeRegs
619             RegAlloc.Linear.SPARC.FreeRegs
620             Dwarf
621             Dwarf.Types
622             Dwarf.Constants
623             Convert
624             ByteCodeTypes
625             ByteCodeAsm
626             ByteCodeGen
627             ByteCodeInstr
628             ByteCodeItbls
629             ByteCodeLink
630             Debugger
631             Linker
632             RtClosureInspect
633             GHCi