Switch to using the time package, rather than old-time
[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.2.3
22
23 Flag base4
24     Description: Choose the even newer, even smaller, split-up base package.
25
26 Flag base3
27     Description: Choose the new smaller, split-up base package.
28
29 Flag dynlibs
30     Description: Dynamic library support
31     Default: False
32     Manual: True
33
34 Flag ghci
35     Description: Build GHCi support.
36     Default: False
37     Manual: True
38
39 Flag stage1
40     Description: Is this stage 1?
41     Default: False
42     Manual: True
43
44 Flag stage2
45     Description: Is this stage 2?
46     Default: False
47     Manual: True
48
49 Flag stage3
50     Description: Is this stage 3?
51     Default: False
52     Manual: True
53
54 Library
55     Exposed: False
56
57     if flag(base4)
58         Build-Depends: base       >= 4   && < 5
59     if flag(base3)
60         Build-Depends: base       >= 3   && < 4
61     if !flag(base3) && !flag(base4)
62         Build-Depends: base       < 3
63
64     if flag(stage1) && impl(ghc < 7.5)
65         Build-Depends: old-time   >= 1   && < 1.1
66
67     if flag(base3) || flag(base4)
68         Build-Depends: directory  >= 1   && < 1.2,
69                        process    >= 1   && < 1.2,
70                        bytestring >= 0.9 && < 0.10,
71                        time                 < 1.5,
72                        containers >= 0.1 && < 0.5,
73                        array      >= 0.1 && < 0.4
74
75     Build-Depends: filepath >= 1 && < 1.3
76     Build-Depends: Cabal, hpc
77     if os(windows)
78         Build-Depends: Win32
79     else
80         Build-Depends: unix
81
82     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
83
84     if flag(ghci)
85         Build-Depends: template-haskell
86         CPP-Options: -DGHCI
87         Include-Dirs: ../rts/dist/build
88
89     Build-Depends: bin-package-db
90     Build-Depends: hoopl
91
92     -- GHC 6.4.2 needs to be able to find WCsubst.c, which needs to be
93     -- able to find WCsubst.h
94     Include-Dirs: ../libraries/base/cbits, ../libraries/base/include
95
96     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
97                 ForeignFunctionInterface, EmptyDataDecls,
98                 TypeSynonymInstances, MultiParamTypeClasses,
99                 FlexibleInstances, Rank2Types, ScopedTypeVariables,
100                 DeriveDataTypeable, BangPatterns
101     if impl(ghc >= 7.1)
102         Extensions: NondecreasingIndentation
103
104     Include-Dirs: . parser utils
105
106     if flag(stage1)
107         Include-Dirs: stage1
108     else
109         if flag(stage2)
110             Include-Dirs: stage2
111         else
112             if flag(stage3)
113                 Include-Dirs: stage2
114
115     Install-Includes: HsVersions.h, ghc_boot_platform.h
116
117     c-sources:
118         parser/cutils.c
119         utils/md5.c
120
121     if flag(dynlibs)
122         c-sources:
123             ghci/keepCAFsForGHCi.c
124
125     hs-source-dirs:
126         basicTypes
127         cmm
128         codeGen
129         coreSyn
130         deSugar
131         ghci
132         hsSyn
133         iface
134         llvmGen
135         main
136         nativeGen
137         parser
138         prelude
139         profiling
140         rename
141         simplCore
142         simplStg
143         specialise
144         stgSyn
145         stranal
146         typecheck
147         types
148         utils
149         vectorise
150
151     Exposed-Modules:
152         Avail
153         BasicTypes
154         DataCon
155         Demand
156         Exception
157         GhcMonad
158         Id
159         IdInfo
160         Literal
161         Llvm
162         Llvm.AbsSyn
163         Llvm.PpLlvm
164         Llvm.Types
165         LlvmCodeGen
166         LlvmCodeGen.Base
167         LlvmCodeGen.CodeGen
168         LlvmCodeGen.Data
169         LlvmCodeGen.Ppr
170         LlvmCodeGen.Regs
171         LlvmMangler
172         MkId
173         Module
174         Name
175         NameEnv
176         NameSet
177         OccName
178         RdrName
179         SrcLoc
180         UniqSupply
181         Unique
182         Var
183         VarEnv
184         VarSet
185         BlockId
186         CLabel
187         Cmm
188         CmmBuildInfoTables
189         CmmPipeline
190         CmmCallConv
191         CmmCommonBlockElim
192         CmmContFlowOpt
193         CmmCvt
194         CmmExpr
195         CmmInfo
196         CmmLex
197         CmmLint
198         CmmLive
199         CmmMachOp
200         CmmNode
201         CmmOpt
202         CmmParse
203         CmmProcPoint
204         CmmSpillReload
205         CmmRewriteAssignments
206         CmmStackLayout
207         CmmType
208         CmmUtils
209         MkGraph
210         OldCmm
211         OldCmmUtils
212         OldPprCmm
213         OptimizationFuel
214         PprBase
215         PprC
216         PprCmm
217         PprCmmDecl
218         PprCmmExpr
219         Bitmap
220         CgBindery
221         CgCallConv
222         CgCase
223         CgClosure
224         CgCon
225         CgExpr
226         CgExtCode
227         CgForeignCall
228         CgHeapery
229         CgHpc
230         CgInfoTbls
231         CgLetNoEscape
232         CgMonad
233         CgParallel
234         CgPrimOp
235         CgProf
236         CgStackery
237         CgTailCall
238         CgTicky
239         CgUtils
240         StgCmm
241         StgCmmBind
242         StgCmmClosure
243         StgCmmCon
244         StgCmmEnv
245         StgCmmExpr
246         StgCmmForeign
247         StgCmmGran
248         StgCmmHeap
249         StgCmmHpc
250         StgCmmLayout
251         StgCmmMonad
252         StgCmmPrim
253         StgCmmProf
254         StgCmmTicky
255         StgCmmUtils
256         ClosureInfo
257         CodeGen
258         SMRep
259         CoreArity
260         CoreFVs
261         CoreLint
262         CorePrep
263         CoreSubst
264         CoreSyn
265         TrieMap
266         CoreTidy
267         CoreUnfold
268         CoreUtils
269         ExternalCore
270         MkCore
271         MkExternalCore
272         PprCore
273         PprExternalCore
274         Check
275         Coverage
276         Desugar
277         DsArrows
278         DsBinds
279         DsCCall
280         DsExpr
281         DsForeign
282         DsGRHSs
283         DsListComp
284         DsMonad
285         DsUtils
286         Match
287         MatchCon
288         MatchLit
289         HsBinds
290         HsDecls
291         HsDoc
292         HsExpr
293         HsImpExp
294         HsLit
295         HsPat
296         HsSyn
297         HsTypes
298         HsUtils
299         BinIface
300         BuildTyCl
301         IfaceEnv
302         IfaceSyn
303         IfaceType
304         LoadIface
305         MkIface
306         TcIface
307         FlagChecker
308         Annotations
309         BreakArray
310         CmdLineParser
311         CodeOutput
312         Config
313         Constants
314         DriverMkDepend
315         DriverPhases
316         DriverPipeline
317         DynFlags
318         ErrUtils
319         Finder
320         GHC
321         GhcMake
322         GhcPlugins
323         DynamicLoading
324         HeaderInfo
325         HscMain
326         HscStats
327         HscTypes
328         InteractiveEval
329         PackageConfig
330         Packages
331         PprTyThing
332         StaticFlags
333         StaticFlagParser
334         SysTools
335         TidyPgm
336         Ctype
337         HaddockUtils
338         LexCore
339         Lexer
340         OptCoercion
341         Parser
342         ParserCore
343         ParserCoreUtils
344         RdrHsSyn
345         ForeignCall
346         PrelInfo
347         PrelNames
348         PrelRules
349         PrimOp
350         TysPrim
351         TysWiredIn
352         CostCentre
353         ProfInit
354         SCCfinal
355         RnBinds
356         RnEnv
357         RnExpr
358         RnHsDoc
359         RnHsSyn
360         RnNames
361         RnPat
362         RnSource
363         RnTypes
364         CoreMonad
365         CSE
366         FloatIn
367         FloatOut
368         LiberateCase
369         OccurAnal
370         SAT
371         SetLevels
372         SimplCore
373         SimplEnv
374         SimplMonad
375         SimplUtils
376         Simplify
377         SRT
378         SimplStg
379         StgStats
380         Rules
381         SpecConstr
382         Specialise
383         CoreToStg
384         StgLint
385         StgSyn
386         DmdAnal
387         WorkWrap
388         WwLib
389         FamInst
390         Inst
391         TcAnnotations
392         TcArrows
393         TcBinds
394         TcClassDcl
395         TcDefaults
396         TcDeriv
397         TcEnv
398         TcExpr
399         TcForeign
400         TcGenDeriv
401         TcGenGenerics
402         TcHsSyn
403         TcHsType
404         TcInstDcls
405         TcMType
406         TcMatches
407         TcPat
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         TcSMonad
422         Class
423         IParam
424         Coercion
425         FamInstEnv
426         FunDeps
427         InstEnv
428         TyCon
429         Kind
430         Type
431         TypeRep
432         Unify
433         Bag
434         Binary
435         BufWrite
436         Digraph
437         Encoding
438         FastBool
439         FastFunctions
440         FastMutInt
441         FastString
442         FastTypes
443         Fingerprint
444         FiniteMap
445         GraphBase
446         GraphColor
447         GraphOps
448         GraphPpr
449         IOEnv
450         ListSetOps
451         Maybes
452         MonadUtils
453         OrdList
454         Outputable
455         Pair
456         Panic
457         Pretty
458         Serialized
459         State
460         StringBuffer
461         UniqFM
462         UniqSet
463         Util
464         Vectorise.Builtins.Base
465         Vectorise.Builtins.Initialise
466         Vectorise.Builtins
467         Vectorise.Monad.Base
468         Vectorise.Monad.Naming
469         Vectorise.Monad.Local
470         Vectorise.Monad.Global
471         Vectorise.Monad.InstEnv
472         Vectorise.Monad
473         Vectorise.Utils.Base
474         Vectorise.Utils.Closure
475         Vectorise.Utils.Hoisting
476         Vectorise.Utils.PADict
477         Vectorise.Utils.Poly
478         Vectorise.Utils
479         Vectorise.Generic.Description
480         Vectorise.Generic.PAMethods
481         Vectorise.Generic.PADict
482         Vectorise.Generic.PData
483         Vectorise.Type.Env
484         Vectorise.Type.Type
485         Vectorise.Type.TyConDecl
486         Vectorise.Type.Classify
487         Vectorise.Convert
488         Vectorise.Vect
489         Vectorise.Var
490         Vectorise.Env
491         Vectorise.Exp
492         Vectorise
493
494     Exposed-Modules:
495             AsmCodeGen
496             TargetReg
497             NCGMonad
498             Instruction
499             Size
500             Reg
501             RegClass
502             PIC
503             Platform
504             CPrim
505             X86.Regs
506             X86.RegInfo
507             X86.Instr
508             X86.Cond
509             X86.Ppr
510             X86.CodeGen
511             PPC.Regs
512             PPC.RegInfo
513             PPC.Instr
514             PPC.Cond
515             PPC.Ppr
516             PPC.CodeGen
517             SPARC.Base
518             SPARC.Regs
519             SPARC.RegPlate
520             SPARC.Imm
521             SPARC.AddrMode
522             SPARC.Cond
523             SPARC.Instr
524             SPARC.Stack
525             SPARC.ShortcutJump
526             SPARC.Ppr
527             SPARC.CodeGen
528             SPARC.CodeGen.Amode
529             SPARC.CodeGen.Base
530             SPARC.CodeGen.CCall
531             SPARC.CodeGen.CondCode
532             SPARC.CodeGen.Gen32
533             SPARC.CodeGen.Gen64
534             SPARC.CodeGen.Sanity
535             SPARC.CodeGen.Expand
536             RegAlloc.Liveness
537             RegAlloc.Graph.Main
538             RegAlloc.Graph.Stats
539             RegAlloc.Graph.ArchBase
540             RegAlloc.Graph.ArchX86
541             RegAlloc.Graph.Coalesce
542             RegAlloc.Graph.Spill
543             RegAlloc.Graph.SpillClean
544             RegAlloc.Graph.SpillCost
545             RegAlloc.Graph.TrivColorable
546             RegAlloc.Linear.Main
547             RegAlloc.Linear.JoinToTargets
548             RegAlloc.Linear.State
549             RegAlloc.Linear.Stats
550             RegAlloc.Linear.FreeRegs
551             RegAlloc.Linear.StackMap
552             RegAlloc.Linear.Base
553             RegAlloc.Linear.X86.FreeRegs
554             RegAlloc.Linear.PPC.FreeRegs
555             RegAlloc.Linear.SPARC.FreeRegs
556
557     if flag(ghci)
558         Exposed-Modules:
559             DsMeta
560             TcSplice
561             Convert
562             ByteCodeAsm
563             ByteCodeGen
564             ByteCodeInstr
565             ByteCodeItbls
566             ByteCodeLink
567             Debugger
568             LibFFI
569             Linker
570             ObjLink
571             RtClosureInspect
572             DebuggerUtils