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