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