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