More codegen refactoring with simonpj
[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         StringBuffer
459         UniqFM
460         UniqSet
461         Util
462         Vectorise.Builtins.Base
463         Vectorise.Builtins.Initialise
464         Vectorise.Builtins
465         Vectorise.Monad.Base
466         Vectorise.Monad.Naming
467         Vectorise.Monad.Local
468         Vectorise.Monad.Global
469         Vectorise.Monad.InstEnv
470         Vectorise.Monad
471         Vectorise.Utils.Base
472         Vectorise.Utils.Closure
473         Vectorise.Utils.Hoisting
474         Vectorise.Utils.PADict
475         Vectorise.Utils.Poly
476         Vectorise.Utils
477         Vectorise.Generic.Description
478         Vectorise.Generic.PAMethods
479         Vectorise.Generic.PADict
480         Vectorise.Generic.PData
481         Vectorise.Type.Env
482         Vectorise.Type.Type
483         Vectorise.Type.TyConDecl
484         Vectorise.Type.Classify
485         Vectorise.Convert
486         Vectorise.Vect
487         Vectorise.Var
488         Vectorise.Env
489         Vectorise.Exp
490         Vectorise
491
492     Exposed-Modules:
493             AsmCodeGen
494             TargetReg
495             NCGMonad
496             Instruction
497             Size
498             Reg
499             RegClass
500             PIC
501             Platform
502             CPrim
503             X86.Regs
504             X86.RegInfo
505             X86.Instr
506             X86.Cond
507             X86.Ppr
508             X86.CodeGen
509             PPC.Regs
510             PPC.RegInfo
511             PPC.Instr
512             PPC.Cond
513             PPC.Ppr
514             PPC.CodeGen
515             SPARC.Base
516             SPARC.Regs
517             SPARC.RegPlate
518             SPARC.Imm
519             SPARC.AddrMode
520             SPARC.Cond
521             SPARC.Instr
522             SPARC.Stack
523             SPARC.ShortcutJump
524             SPARC.Ppr
525             SPARC.CodeGen
526             SPARC.CodeGen.Amode
527             SPARC.CodeGen.Base
528             SPARC.CodeGen.CCall
529             SPARC.CodeGen.CondCode
530             SPARC.CodeGen.Gen32
531             SPARC.CodeGen.Gen64
532             SPARC.CodeGen.Sanity
533             SPARC.CodeGen.Expand
534             RegAlloc.Liveness
535             RegAlloc.Graph.Main
536             RegAlloc.Graph.Stats
537             RegAlloc.Graph.ArchBase
538             RegAlloc.Graph.ArchX86
539             RegAlloc.Graph.Coalesce
540             RegAlloc.Graph.Spill
541             RegAlloc.Graph.SpillClean
542             RegAlloc.Graph.SpillCost
543             RegAlloc.Graph.TrivColorable
544             RegAlloc.Linear.Main
545             RegAlloc.Linear.JoinToTargets
546             RegAlloc.Linear.State
547             RegAlloc.Linear.Stats
548             RegAlloc.Linear.FreeRegs
549             RegAlloc.Linear.StackMap
550             RegAlloc.Linear.Base
551             RegAlloc.Linear.X86.FreeRegs
552             RegAlloc.Linear.PPC.FreeRegs
553             RegAlloc.Linear.SPARC.FreeRegs
554
555     if flag(ghci)
556         Exposed-Modules:
557             DsMeta
558             TcSplice
559             Convert
560             ByteCodeAsm
561             ByteCodeGen
562             ByteCodeInstr
563             ByteCodeItbls
564             ByteCodeLink
565             Debugger
566             LibFFI
567             Linker
568             ObjLink
569             RtClosureInspect
570             DebuggerUtils