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