Add an unshare stg2stg phase
[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.2,
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
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
104     if flag(dynlibs)
105         c-sources:
106             ghci/keepCAFsForGHCi.c
107
108     hs-source-dirs:
109         basicTypes
110         cmm
111         codeGen
112         coreSyn
113         deSugar
114         ghci
115         hsSyn
116         iface
117         llvmGen
118         main
119         nativeGen
120         parser
121         prelude
122         profiling
123         rename
124         simplCore
125         simplStg
126         specialise
127         stgSyn
128         stranal
129         typecheck
130         types
131         utils
132         vectorise
133
134     Exposed-Modules:
135         Avail
136         BasicTypes
137         DataCon
138         Demand
139         Exception
140         GhcMonad
141         Id
142         IdInfo
143         Literal
144         Llvm
145         Llvm.AbsSyn
146         Llvm.PpLlvm
147         Llvm.Types
148         LlvmCodeGen
149         LlvmCodeGen.Base
150         LlvmCodeGen.CodeGen
151         LlvmCodeGen.Data
152         LlvmCodeGen.Ppr
153         LlvmCodeGen.Regs
154         LlvmMangler
155         MkId
156         Module
157         Name
158         NameEnv
159         NameSet
160         OccName
161         RdrName
162         SrcLoc
163         UniqSupply
164         Unique
165         Var
166         VarEnv
167         VarSet
168         BlockId
169         CLabel
170         Cmm
171         CmmBuildInfoTables
172         CmmPipeline
173         CmmCallConv
174         CmmCommonBlockElim
175         CmmContFlowOpt
176         CmmCvt
177         CmmExpr
178         CmmInfo
179         CmmLex
180         CmmLint
181         CmmLive
182         CmmMachOp
183         CmmNode
184         CmmOpt
185         CmmParse
186         CmmProcPoint
187         CmmRewriteAssignments
188         CmmSink
189         CmmType
190         CmmUtils
191         CmmLayoutStack
192         MkGraph
193         OldCmm
194         OldCmmLint
195         OldCmmUtils
196         OldPprCmm
197         PprBase
198         PprC
199         PprCmm
200         PprCmmDecl
201         PprCmmExpr
202         Bitmap
203         CodeGen.Platform
204         CodeGen.Platform.ARM
205         CodeGen.Platform.NoRegs
206         CodeGen.Platform.PPC
207         CodeGen.Platform.PPC_Darwin
208         CodeGen.Platform.SPARC
209         CodeGen.Platform.X86
210         CodeGen.Platform.X86_64
211         CgBindery
212         CgCallConv
213         CgCase
214         CgClosure
215         CgCon
216         CgExpr
217         CgExtCode
218         CgForeignCall
219         CgHeapery
220         CgHpc
221         CgInfoTbls
222         CgLetNoEscape
223         CgMonad
224         CgParallel
225         CgPrimOp
226         CgProf
227         CgStackery
228         CgTailCall
229         CgTicky
230         CgUtils
231         StgCmm
232         StgCmmBind
233         StgCmmClosure
234         StgCmmCon
235         StgCmmEnv
236         StgCmmExpr
237         StgCmmForeign
238         StgCmmGran
239         StgCmmHeap
240         StgCmmHpc
241         StgCmmLayout
242         StgCmmMonad
243         StgCmmPrim
244         StgCmmProf
245         StgCmmTicky
246         StgCmmUtils
247         ClosureInfo
248         CodeGen
249         SMRep
250         CoreArity
251         CoreFVs
252         CoreLint
253         CorePrep
254         CoreSubst
255         CoreSyn
256         TrieMap
257         CoreTidy
258         CoreUnfold
259         CoreUtils
260         ExternalCore
261         MkCore
262         MkExternalCore
263         PprCore
264         PprExternalCore
265         Check
266         Coverage
267         Desugar
268         DsArrows
269         DsBinds
270         DsCCall
271         DsExpr
272         DsForeign
273         DsGRHSs
274         DsListComp
275         DsMonad
276         DsUtils
277         Match
278         MatchCon
279         MatchLit
280         HsBinds
281         HsDecls
282         HsDoc
283         HsExpr
284         HsImpExp
285         HsLit
286         HsPat
287         HsSyn
288         HsTypes
289         HsUtils
290         BinIface
291         BuildTyCl
292         IfaceEnv
293         IfaceSyn
294         IfaceType
295         LoadIface
296         MkIface
297         TcIface
298         FlagChecker
299         Annotations
300         BreakArray
301         CmdLineParser
302         CodeOutput
303         Config
304         Constants
305         DriverMkDepend
306         DriverPhases
307         DriverPipeline
308         DynFlags
309         ErrUtils
310         Finder
311         GHC
312         GhcMake
313         GhcPlugins
314         DynamicLoading
315         HeaderInfo
316         HscMain
317         HscStats
318         HscTypes
319         InteractiveEval
320         PackageConfig
321         Packages
322         PprTyThing
323         StaticFlags
324         StaticFlagParser
325         SysTools
326         TidyPgm
327         Ctype
328         HaddockUtils
329         LexCore
330         Lexer
331         OptCoercion
332         Parser
333         ParserCore
334         ParserCoreUtils
335         RdrHsSyn
336         ForeignCall
337         PrelInfo
338         PrelNames
339         PrelRules
340         PrimOp
341         TysPrim
342         TysWiredIn
343         CostCentre
344         ProfInit
345         SCCfinal
346         RnBinds
347         RnEnv
348         RnExpr
349         RnHsDoc
350         RnNames
351         RnPat
352         RnSource
353         RnTypes
354         CoreMonad
355         CSE
356         FloatIn
357         FloatOut
358         LiberateCase
359         OccurAnal
360         SAT
361         SetLevels
362         SimplCore
363         SimplEnv
364         SimplMonad
365         SimplUtils
366         Simplify
367         SRT
368         SimplStg
369         StgStats
370         UnariseStg
371         Unshare
372         Rules
373         SpecConstr
374         Specialise
375         CoreToStg
376         StgLint
377         StgSyn
378         DmdAnal
379         WorkWrap
380         WwLib
381         FamInst
382         Inst
383         TcAnnotations
384         TcArrows
385         TcBinds
386         TcClassDcl
387         TcDefaults
388         TcDeriv
389         TcEnv
390         TcExpr
391         TcForeign
392         TcGenDeriv
393         TcGenGenerics
394         TcHsSyn
395         TcHsType
396         TcInstDcls
397         TcMType
398         TcMatches
399         TcPat
400         TcRnDriver
401         TcRnMonad
402         TcRnTypes
403         TcRules
404         TcSimplify
405         TcErrors
406         TcTyClsDecls
407         TcTyDecls
408         TcType
409         TcEvidence
410         TcUnify
411         TcInteract
412         TcCanonical
413         TcSMonad
414         Class
415         Coercion
416         FamInstEnv
417         FunDeps
418         InstEnv
419         TyCon
420         Kind
421         Type
422         TypeRep
423         Unify
424         Bag
425         Binary
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         Vectorise.Builtins.Base
457         Vectorise.Builtins.Initialise
458         Vectorise.Builtins
459         Vectorise.Monad.Base
460         Vectorise.Monad.Naming
461         Vectorise.Monad.Local
462         Vectorise.Monad.Global
463         Vectorise.Monad.InstEnv
464         Vectorise.Monad
465         Vectorise.Utils.Base
466         Vectorise.Utils.Closure
467         Vectorise.Utils.Hoisting
468         Vectorise.Utils.PADict
469         Vectorise.Utils.Poly
470         Vectorise.Utils
471         Vectorise.Generic.Description
472         Vectorise.Generic.PAMethods
473         Vectorise.Generic.PADict
474         Vectorise.Generic.PData
475         Vectorise.Type.Env
476         Vectorise.Type.Type
477         Vectorise.Type.TyConDecl
478         Vectorise.Type.Classify
479         Vectorise.Convert
480         Vectorise.Vect
481         Vectorise.Var
482         Vectorise.Env
483         Vectorise.Exp
484         Vectorise
485         Hoopl.Dataflow
486         Hoopl
487
488     Exposed-Modules:
489             AsmCodeGen
490             TargetReg
491             NCGMonad
492             Instruction
493             Size
494             Reg
495             RegClass
496             PIC
497             Platform
498             CPrim
499             X86.Regs
500             X86.RegInfo
501             X86.Instr
502             X86.Cond
503             X86.Ppr
504             X86.CodeGen
505             PPC.Regs
506             PPC.RegInfo
507             PPC.Instr
508             PPC.Cond
509             PPC.Ppr
510             PPC.CodeGen
511             SPARC.Base
512             SPARC.Regs
513             SPARC.RegPlate
514             SPARC.Imm
515             SPARC.AddrMode
516             SPARC.Cond
517             SPARC.Instr
518             SPARC.Stack
519             SPARC.ShortcutJump
520             SPARC.Ppr
521             SPARC.CodeGen
522             SPARC.CodeGen.Amode
523             SPARC.CodeGen.Base
524             SPARC.CodeGen.CondCode
525             SPARC.CodeGen.Gen32
526             SPARC.CodeGen.Gen64
527             SPARC.CodeGen.Sanity
528             SPARC.CodeGen.Expand
529             RegAlloc.Liveness
530             RegAlloc.Graph.Main
531             RegAlloc.Graph.Stats
532             RegAlloc.Graph.ArchBase
533             RegAlloc.Graph.ArchX86
534             RegAlloc.Graph.Coalesce
535             RegAlloc.Graph.Spill
536             RegAlloc.Graph.SpillClean
537             RegAlloc.Graph.SpillCost
538             RegAlloc.Graph.TrivColorable
539             RegAlloc.Linear.Main
540             RegAlloc.Linear.JoinToTargets
541             RegAlloc.Linear.State
542             RegAlloc.Linear.Stats
543             RegAlloc.Linear.FreeRegs
544             RegAlloc.Linear.StackMap
545             RegAlloc.Linear.Base
546             RegAlloc.Linear.X86.FreeRegs
547             RegAlloc.Linear.PPC.FreeRegs
548             RegAlloc.Linear.SPARC.FreeRegs
549
550     if flag(ghci)
551         Exposed-Modules:
552             DsMeta
553             TcSplice
554             Convert
555             ByteCodeAsm
556             ByteCodeGen
557             ByteCodeInstr
558             ByteCodeItbls
559             ByteCodeLink
560             Debugger
561             LibFFI
562             Linker
563             ObjLink
564             RtClosureInspect
565             DebuggerUtils