tracing: Kill EVENT_STARTUP
[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         ShPackageKey
501 --        CgInfoTbls used in ghci/DebuggerUtils
502 --        CgHeapery  mkVirtHeapOffsets used in ghci
503
504     Exposed-Modules:
505             AsmCodeGen
506             TargetReg
507             NCGMonad
508             Instruction
509             Format
510             Reg
511             RegClass
512             PIC
513             Platform
514             CPrim
515             X86.Regs
516             X86.RegInfo
517             X86.Instr
518             X86.Cond
519             X86.Ppr
520             X86.CodeGen
521             PPC.Regs
522             PPC.RegInfo
523             PPC.Instr
524             PPC.Cond
525             PPC.Ppr
526             PPC.CodeGen
527             SPARC.Base
528             SPARC.Regs
529             SPARC.Imm
530             SPARC.AddrMode
531             SPARC.Cond
532             SPARC.Instr
533             SPARC.Stack
534             SPARC.ShortcutJump
535             SPARC.Ppr
536             SPARC.CodeGen
537             SPARC.CodeGen.Amode
538             SPARC.CodeGen.Base
539             SPARC.CodeGen.CondCode
540             SPARC.CodeGen.Gen32
541             SPARC.CodeGen.Gen64
542             SPARC.CodeGen.Sanity
543             SPARC.CodeGen.Expand
544             RegAlloc.Liveness
545             RegAlloc.Graph.Main
546             RegAlloc.Graph.Stats
547             RegAlloc.Graph.ArchBase
548             RegAlloc.Graph.ArchX86
549             RegAlloc.Graph.Coalesce
550             RegAlloc.Graph.Spill
551             RegAlloc.Graph.SpillClean
552             RegAlloc.Graph.SpillCost
553             RegAlloc.Graph.TrivColorable
554             RegAlloc.Linear.Main
555             RegAlloc.Linear.JoinToTargets
556             RegAlloc.Linear.State
557             RegAlloc.Linear.Stats
558             RegAlloc.Linear.FreeRegs
559             RegAlloc.Linear.StackMap
560             RegAlloc.Linear.Base
561             RegAlloc.Linear.X86.FreeRegs
562             RegAlloc.Linear.X86_64.FreeRegs
563             RegAlloc.Linear.PPC.FreeRegs
564             RegAlloc.Linear.SPARC.FreeRegs
565             Dwarf
566             Dwarf.Types
567             Dwarf.Constants
568
569     if flag(ghci)
570         Exposed-Modules:
571             Convert
572             ByteCodeAsm
573             ByteCodeGen
574             ByteCodeInstr
575             ByteCodeItbls
576             ByteCodeLink
577             Debugger
578             LibFFI
579             Linker
580             ObjLink
581             RtClosureInspect
582             DebuggerUtils