Fixes the way we check if flattening happened during
[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 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.1,
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: ../libffi/build/include
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
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         BasicTypes
150         DataCon
151         Demand
152         Exception
153         GhcMonad
154         Id
155         IdInfo
156         Literal
157         Llvm
158         Llvm.AbsSyn
159         Llvm.PpLlvm
160         Llvm.Types
161         LlvmCodeGen
162         LlvmCodeGen.Base
163         LlvmCodeGen.CodeGen
164         LlvmCodeGen.Data
165         LlvmCodeGen.Ppr
166         LlvmCodeGen.Regs
167         LlvmMangler
168         MkId
169         Module
170         Name
171         NameEnv
172         NameSet
173         OccName
174         RdrName
175         SrcLoc
176         UniqSupply
177         Unique
178         Var
179         VarEnv
180         VarSet
181         BlockId
182         CLabel
183         Cmm
184         CmmBuildInfoTables
185         CmmCPS
186         CmmCallConv
187         CmmCommonBlockElim
188         CmmContFlowOpt
189         CmmCvt
190         CmmDecl
191         CmmExpr
192         CmmInfo
193         CmmLex
194         CmmLint
195         CmmLive
196         CmmMachOp
197         CmmNode
198         CmmOpt
199         CmmParse
200         CmmProcPoint
201         CmmSpillReload
202         CmmStackLayout
203         CmmType
204         CmmUtils
205         MkGraph
206         OldCmm
207         OldCmmUtils
208         OldPprCmm
209         OptimizationFuel
210         PprBase
211         PprC
212         PprCmm
213         PprCmmDecl
214         PprCmmExpr
215         Bitmap
216         CgBindery
217         CgCallConv
218         CgCase
219         CgClosure
220         CgCon
221         CgExpr
222         CgExtCode
223         CgForeignCall
224         CgHeapery
225         CgHpc
226         CgInfoTbls
227         CgLetNoEscape
228         CgMonad
229         CgParallel
230         CgPrimOp
231         CgProf
232         CgStackery
233         CgTailCall
234         CgTicky
235         CgUtils
236         StgCmm
237         StgCmmBind
238         StgCmmClosure
239         StgCmmCon
240         StgCmmEnv
241         StgCmmExpr
242         StgCmmForeign
243         StgCmmGran
244         StgCmmHeap
245         StgCmmHpc
246         StgCmmLayout
247         StgCmmMonad
248         StgCmmPrim
249         StgCmmProf
250         StgCmmTicky
251         StgCmmUtils
252         ClosureInfo
253         CodeGen
254         SMRep
255         CoreArity
256         CoreFVs
257         CoreLint
258         CorePrep
259         CoreSubst
260         CoreSyn
261         CoreTidy
262         CoreUnfold
263         CoreUtils
264         ExternalCore
265         MkCore
266         MkExternalCore
267         PprCore
268         PprExternalCore
269         Check
270         Coverage
271         Desugar
272         DsArrows
273         DsBinds
274         DsCCall
275         DsExpr
276         DsForeign
277         DsGRHSs
278         DsListComp
279         DsMonad
280         DsUtils
281         Match
282         MatchCon
283         MatchLit
284         HsBinds
285         HsDecls
286         HsDoc
287         HsExpr
288         HsImpExp
289         HsLit
290         HsPat
291         HsSyn
292         HsTypes
293         HsUtils
294         BinIface
295         BuildTyCl
296         IfaceEnv
297         IfaceSyn
298         IfaceType
299         LoadIface
300         MkIface
301         TcIface
302         Annotations
303         BreakArray
304         CmdLineParser
305         CodeOutput
306         Config
307         Constants
308         DriverMkDepend
309         DriverPhases
310         DriverPipeline
311         DynFlags
312         ErrUtils
313         Finder
314         GHC
315         GhcMake
316         HeaderInfo
317         HscMain
318         HscStats
319         HscTypes
320         InteractiveEval
321         PackageConfig
322         Packages
323         PprTyThing
324         StaticFlags
325         StaticFlagParser
326         SysTools
327         TidyPgm
328         Ctype
329         HaddockUtils
330         LexCore
331         Lexer
332         OptCoercion
333         Parser
334         ParserCore
335         ParserCoreUtils
336         RdrHsSyn
337         ForeignCall
338         PrelInfo
339         PrelNames
340         PrelRules
341         PrimOp
342         TysPrim
343         TysWiredIn
344         CostCentre
345         ProfInit
346         SCCfinal
347         RnBinds
348         RnEnv
349         RnExpr
350         RnHsDoc
351         RnHsSyn
352         RnNames
353         RnPat
354         RnSource
355         RnTypes
356         CoreMonad
357         CSE
358         FloatIn
359         FloatOut
360         LiberateCase
361         OccurAnal
362         SAT
363         SetLevels
364         SimplCore
365         SimplEnv
366         SimplMonad
367         SimplUtils
368         Simplify
369         SRT
370         SimplStg
371         StgStats
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         TcHsSyn
394         TcHsType
395         TcInstDcls
396         TcMType
397         TcMatches
398         TcPat
399         TcRnDriver
400         TcRnMonad
401         TcRnTypes
402         TcRules
403         TcSimplify
404         TcErrors
405         TcTyClsDecls
406         TcTyDecls
407         TcType
408         TcUnify
409         TcInteract
410         TcCanonical
411         TcSMonad
412         Class
413         Coercion
414         FamInstEnv
415         FunDeps
416         Generics
417         InstEnv
418         TyCon
419         Type
420         TypeRep
421         Unify
422         Bag
423         Binary
424         BufWrite
425         Digraph
426         Encoding
427         FastBool
428         FastFunctions
429         FastMutInt
430         FastString
431         FastTypes
432         Fingerprint
433         FiniteMap
434         GraphBase
435         GraphColor
436         GraphOps
437         GraphPpr
438         IOEnv
439         Interval
440         ListSetOps
441         Maybes
442         MonadUtils
443         OrdList
444         Outputable
445         Panic
446         Pretty
447         Serialized
448         State
449         StringBuffer
450         UniqFM
451         UniqSet
452         Util
453         Vectorise.Builtins.Base
454         Vectorise.Builtins.Initialise
455         Vectorise.Builtins.Modules
456         Vectorise.Builtins.Prelude
457         Vectorise.Builtins
458         Vectorise.Monad.Base
459         Vectorise.Monad.Naming
460         Vectorise.Monad.Local
461         Vectorise.Monad.Global
462         Vectorise.Monad.InstEnv
463         Vectorise.Monad
464         Vectorise.Utils.Base
465         Vectorise.Utils.Closure
466         Vectorise.Utils.Hoisting
467         Vectorise.Utils.PADict
468         Vectorise.Utils.Poly
469         Vectorise.Utils
470         Vectorise.Type.Env
471         Vectorise.Type.Repr
472         Vectorise.Type.PData
473         Vectorise.Type.PRepr
474         Vectorise.Type.PADict
475         Vectorise.Type.Type
476         Vectorise.Type.TyConDecl
477         Vectorise.Type.Classify
478         Vectorise.Convert
479         Vectorise.Vect
480         Vectorise.Var
481         Vectorise.Env
482         Vectorise.Exp
483         Vectorise
484
485     Exposed-Modules:
486             AsmCodeGen
487             TargetReg
488             NCGMonad
489             Instruction
490             Size
491             Reg
492             RegClass
493             PIC
494             Platform
495             X86.Regs
496             X86.RegInfo
497             X86.Instr
498             X86.Cond
499             X86.Ppr
500             X86.CodeGen
501             PPC.Regs
502             PPC.RegInfo
503             PPC.Instr
504             PPC.Cond
505             PPC.Ppr
506             PPC.CodeGen
507             SPARC.Base
508             SPARC.Regs
509             SPARC.RegPlate
510             SPARC.Imm
511             SPARC.AddrMode
512             SPARC.Cond
513             SPARC.Instr
514             SPARC.Stack
515             SPARC.ShortcutJump
516             SPARC.Ppr
517             SPARC.CodeGen
518             SPARC.CodeGen.Amode
519             SPARC.CodeGen.Base
520             SPARC.CodeGen.CCall
521             SPARC.CodeGen.CondCode
522             SPARC.CodeGen.Gen32
523             SPARC.CodeGen.Gen64
524             SPARC.CodeGen.Sanity
525             SPARC.CodeGen.Expand
526             RegAlloc.Liveness
527             RegAlloc.Graph.Main
528             RegAlloc.Graph.Stats
529             RegAlloc.Graph.ArchBase
530             RegAlloc.Graph.ArchX86
531             RegAlloc.Graph.Coalesce
532             RegAlloc.Graph.Spill
533             RegAlloc.Graph.SpillClean
534             RegAlloc.Graph.SpillCost
535             RegAlloc.Graph.TrivColorable
536             RegAlloc.Linear.Main
537             RegAlloc.Linear.JoinToTargets
538             RegAlloc.Linear.State
539             RegAlloc.Linear.Stats
540             RegAlloc.Linear.FreeRegs
541             RegAlloc.Linear.StackMap
542             RegAlloc.Linear.Base
543             RegAlloc.Linear.X86.FreeRegs
544             RegAlloc.Linear.PPC.FreeRegs
545             RegAlloc.Linear.SPARC.FreeRegs
546
547     if flag(ghci)
548         Exposed-Modules:
549             DsMeta
550             TcSplice
551             Convert
552             ByteCodeAsm
553             ByteCodeFFI
554             ByteCodeGen
555             ByteCodeInstr
556             ByteCodeItbls
557             ByteCodeLink
558             Debugger
559             LibFFI
560             Linker
561             ObjLink
562             RtClosureInspect
563