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