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