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