Allow the old [$foo| ... |] syntax for quasi-quotes
[ghc-hetmet.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 ncg
40     Description: Build the NCG.
41     Default: False
42     Manual: True
43
44 Flag stage1
45     Description: Is this stage 1?
46     Default: False
47
48 Flag stage2
49     Description: Is this stage 2?
50     Default: False
51
52 Flag stage3
53     Description: Is this stage 3?
54     Default: False
55
56 Library
57     Exposed: False
58
59     if flag(base4)
60         Build-Depends: base       >= 4   && < 5
61     if flag(base3)
62         Build-Depends: base       >= 3   && < 4
63     if !flag(base3) && !flag(base4)
64         Build-Depends: base       < 3
65
66     if flag(base3) || flag(base4)
67         Build-Depends: directory  >= 1   && < 1.2,
68                        process    >= 1   && < 1.1,
69                        bytestring >= 0.9 && < 0.10,
70                        old-time   >= 1   && < 1.1,
71                        containers >= 0.1 && < 0.5,
72                        array      >= 0.1 && < 0.4
73
74     Build-Depends: filepath >= 1 && < 1.3
75     Build-Depends: Cabal, hpc
76     if os(windows)
77         Build-Depends: Win32
78     else
79         Build-Depends: unix
80
81     GHC-Options: -Wall -fno-warn-name-shadowing -fno-warn-orphans
82
83     if flag(ghci)
84         Build-Depends: template-haskell
85         CPP-Options: -DGHCI
86         Include-Dirs: ../libffi/build/include
87
88     if !flag(ncg)
89         CPP-Options: -DOMIT_NATIVE_CODEGEN
90
91     Build-Depends: bin-package-db
92
93     -- GHC 6.4.2 needs to be able to find WCsubst.c, which needs to be
94     -- able to find WCsubst.h
95     Include-Dirs: ../libraries/base/cbits, ../libraries/base/include
96
97     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
98                 ForeignFunctionInterface, EmptyDataDecls,
99                 TypeSynonymInstances, MultiParamTypeClasses,
100                 FlexibleInstances, Rank2Types, ScopedTypeVariables,
101                 DeriveDataTypeable
102
103     Include-Dirs: . parser utils
104
105     if flag(stage1)
106         Include-Dirs: stage1
107     else
108         if flag(stage2)
109             Include-Dirs: stage2
110         else
111             if flag(stage3)
112                 Include-Dirs: stage2
113
114     Install-Includes: HsVersions.h, ghc_boot_platform.h
115
116     c-sources:
117         parser/cutils.c
118         utils/md5.c
119
120     if flag(dynlibs)
121         c-sources:
122             ghci/keepCAFsForGHCi.c
123
124     hs-source-dirs:
125         basicTypes
126         cmm
127         codeGen
128         coreSyn
129         deSugar
130         ghci
131         hsSyn
132         iface
133         llvmGen
134         main
135         nativeGen
136         parser
137         prelude
138         profiling
139         rename
140         simplCore
141         simplStg
142         specialise
143         stgSyn
144         stranal
145         typecheck
146         types
147         utils
148         vectorise
149
150     Exposed-Modules:
151         BasicTypes
152         DataCon
153         Demand
154         Exception
155         GhcMonad
156         Id
157         IdInfo
158         Literal
159         Llvm
160         Llvm.AbsSyn
161         Llvm.PpLlvm
162         Llvm.Types
163         LlvmCodeGen
164         LlvmCodeGen.Base
165         LlvmCodeGen.CodeGen
166         LlvmCodeGen.Data
167         LlvmCodeGen.Ppr
168         LlvmCodeGen.Regs
169         LlvmMangler
170         MkId
171         Module
172         Name
173         NameEnv
174         NameSet
175         OccName
176         RdrName
177         SrcLoc
178         UniqSupply
179         Unique
180         Var
181         VarEnv
182         VarSet
183         BlockId
184         CLabel
185         Cmm
186         CmmBrokenBlock
187         CmmBuildInfoTables
188         CmmCPS
189         CmmCPSGen
190         CmmCPSZ
191         CmmCallConv
192         CmmCommonBlockElimZ
193         CmmContFlowOpt
194         CmmCvt
195         CmmExpr
196         CmmInfo
197         CmmLex
198         CmmLint
199         CmmLive
200         CmmLiveZ
201         CmmOpt
202         CmmParse
203         CmmProcPoint
204         CmmProcPointZ
205         CmmSpillReload
206         CmmStackLayout
207         CmmTx
208         CmmUtils
209         CmmZipUtil
210         DFMonad
211         Dataflow
212         MkZipCfg
213         MkZipCfgCmm
214         OptimizationFuel
215         PprBase
216         PprC
217         PprCmm
218         PprCmmZ
219         StackColor
220         StackPlacements
221         ZipCfg
222         ZipCfgCmmRep
223         ZipCfgExtras
224         ZipDataflow
225         Bitmap
226         CgBindery
227         CgCallConv
228         CgCase
229         CgClosure
230         CgCon
231         CgExpr
232         CgExtCode
233         CgForeignCall
234         CgHeapery
235         CgHpc
236         CgInfoTbls
237         CgLetNoEscape
238         CgMonad
239         CgParallel
240         CgPrimOp
241         CgProf
242         CgStackery
243         CgTailCall
244         CgTicky
245         CgUtils
246         StgCmm
247         StgCmmBind
248         StgCmmClosure
249         StgCmmCon
250         StgCmmEnv
251         StgCmmExpr
252         StgCmmForeign
253         StgCmmGran
254         StgCmmHeap
255         StgCmmHpc
256         StgCmmLayout
257         StgCmmMonad
258         StgCmmPrim
259         StgCmmProf
260         StgCmmTicky
261         StgCmmUtils
262         ClosureInfo
263         CodeGen
264         SMRep
265         CoreArity
266         CoreFVs
267         CoreLint
268         CorePrep
269         CoreSubst
270         CoreSyn
271         CoreTidy
272         CoreUnfold
273         CoreUtils
274         ExternalCore
275         MkCore
276         MkExternalCore
277         PprCore
278         PprExternalCore
279         Check
280         Coverage
281         Desugar
282         DsArrows
283         DsBinds
284         DsCCall
285         DsExpr
286         DsForeign
287         DsGRHSs
288         DsListComp
289         DsMonad
290         DsUtils
291         Match
292         MatchCon
293         MatchLit
294         HsBinds
295         HsDecls
296         HsDoc
297         HsExpr
298         HsImpExp
299         HsLit
300         HsPat
301         HsSyn
302         HsTypes
303         HsUtils
304         BinIface
305         BuildTyCl
306         IfaceEnv
307         IfaceSyn
308         IfaceType
309         LoadIface
310         MkIface
311         TcIface
312         Annotations
313         BreakArray
314         CmdLineParser
315         CodeOutput
316         Config
317         Constants
318         DriverMkDepend
319         DriverPhases
320         DriverPipeline
321         DynFlags
322         ErrUtils
323         Finder
324         GHC
325         HeaderInfo
326         HscMain
327         HscStats
328         HscTypes
329         InteractiveEval
330         PackageConfig
331         Packages
332         PprTyThing
333         StaticFlags
334         StaticFlagParser
335         SysTools
336         TidyPgm
337         Ctype
338         HaddockUtils
339         LexCore
340         Lexer
341         OptCoercion
342         Parser
343         ParserCore
344         ParserCoreUtils
345         RdrHsSyn
346         ForeignCall
347         PrelInfo
348         PrelNames
349         PrelRules
350         PrimOp
351         TysPrim
352         TysWiredIn
353         CostCentre
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         TcHsSyn
402         TcHsType
403         TcInstDcls
404         TcMType
405         TcMatches
406         TcPat
407         TcRnDriver
408         TcRnMonad
409         TcRnTypes
410         TcRules
411         TcSimplify
412         TcErrors
413         TcTyClsDecls
414         TcTyDecls
415         TcType
416         TcUnify
417         TcInteract
418         TcCanonical
419         TcSMonad
420         Class
421         Coercion
422         FamInstEnv
423         FunDeps
424         Generics
425         InstEnv
426         TyCon
427         Type
428         TypeRep
429         Unify
430         Bag
431         Binary
432         BufWrite
433         Digraph
434         Encoding
435         FastBool
436         FastFunctions
437         FastMutInt
438         FastString
439         FastTypes
440         Fingerprint
441         FiniteMap
442         GraphBase
443         GraphColor
444         GraphOps
445         GraphPpr
446         IOEnv
447         Interval
448         ListSetOps
449         Maybes
450         MonadUtils
451         OrdList
452         Outputable
453         Panic
454         Pretty
455         Serialized
456         State
457         StringBuffer
458         UniqFM
459         UniqSet
460         Util
461         Vectorise.Builtins.Base
462         Vectorise.Builtins.Initialise
463         Vectorise.Builtins.Modules
464         Vectorise.Builtins.Prelude
465         Vectorise.Builtins
466         Vectorise.Monad.Base
467         Vectorise.Monad.Naming
468         Vectorise.Monad.Local
469         Vectorise.Monad.Global
470         Vectorise.Monad.InstEnv
471         Vectorise.Monad
472         Vectorise.Utils.Base
473         Vectorise.Utils.Closure
474         Vectorise.Utils.Hoisting
475         Vectorise.Utils.PADict
476         Vectorise.Utils.PRDict
477         Vectorise.Utils.Poly
478         Vectorise.Utils
479         Vectorise.Type.Env
480         Vectorise.Type.Repr
481         Vectorise.Type.PData
482         Vectorise.Type.PRepr
483         Vectorise.Type.PADict
484         Vectorise.Type.PRDict
485         Vectorise.Type.Type
486         Vectorise.Type.TyConDecl
487         Vectorise.Type.Classify
488         Vectorise.Convert
489         Vectorise.Vect
490         Vectorise.Var
491         Vectorise.Env
492         Vectorise.Exp
493         Vectorise
494
495     -- We only need to expose more modules as some of the ncg code is used
496     -- by the LLVM backend so its always included
497     if flag(ncg)
498         Exposed-Modules:
499             AsmCodeGen
500             TargetReg
501             NCGMonad
502             Instruction
503             Size
504             Reg
505             RegClass
506             PIC
507             Platform
508             Alpha.Regs
509             Alpha.RegInfo
510             Alpha.Instr
511             Alpha.CodeGen
512             X86.Regs
513             X86.RegInfo
514             X86.Instr
515             X86.Cond
516             X86.Ppr
517             X86.CodeGen
518             PPC.Regs
519             PPC.RegInfo
520             PPC.Instr
521             PPC.Cond
522             PPC.Ppr
523             PPC.CodeGen
524             SPARC.Base
525             SPARC.Regs
526             SPARC.RegPlate
527             SPARC.Imm
528             SPARC.AddrMode
529             SPARC.Cond
530             SPARC.Instr
531             SPARC.Stack
532             SPARC.ShortcutJump
533             SPARC.Ppr
534             SPARC.CodeGen
535             SPARC.CodeGen.Amode
536             SPARC.CodeGen.Base
537             SPARC.CodeGen.CCall
538             SPARC.CodeGen.CondCode
539             SPARC.CodeGen.Gen32
540             SPARC.CodeGen.Gen64
541             SPARC.CodeGen.Sanity
542             SPARC.CodeGen.Expand
543             RegAlloc.Liveness
544             RegAlloc.Graph.Main
545             RegAlloc.Graph.Stats
546             RegAlloc.Graph.ArchBase
547             RegAlloc.Graph.ArchX86
548             RegAlloc.Graph.Coalesce
549             RegAlloc.Graph.Spill
550             RegAlloc.Graph.SpillClean
551             RegAlloc.Graph.SpillCost
552             RegAlloc.Graph.TrivColorable
553             RegAlloc.Linear.Main
554             RegAlloc.Linear.JoinToTargets
555             RegAlloc.Linear.State
556             RegAlloc.Linear.Stats
557             RegAlloc.Linear.FreeRegs
558             RegAlloc.Linear.StackMap
559             RegAlloc.Linear.Base
560             RegAlloc.Linear.X86.FreeRegs
561             RegAlloc.Linear.PPC.FreeRegs
562             RegAlloc.Linear.SPARC.FreeRegs
563
564     if flag(ghci)
565         Exposed-Modules:
566             DsMeta
567             TcSplice
568             Convert
569             ByteCodeAsm
570             ByteCodeFFI
571             ByteCodeGen
572             ByteCodeInstr
573             ByteCodeItbls
574             ByteCodeLink
575             Debugger
576             LibFFI
577             Linker
578             ObjLink
579             RtClosureInspect
580