Simplify and tidy up the handling of tuple names
[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 ghci
24     Description: Build GHCi support.
25     Default: False
26     Manual: True
27
28 Flag stage1
29     Description: Is this stage 1?
30     Default: False
31     Manual: True
32
33 Flag stage2
34     Description: Is this stage 2?
35     Default: False
36     Manual: True
37
38 Flag stage3
39     Description: Is this stage 3?
40     Default: False
41     Manual: True
42
43 Library
44     Exposed: False
45
46     Build-Depends: base       >= 4   && < 5,
47                    directory  >= 1   && < 1.3,
48                    process    >= 1   && < 1.3,
49                    bytestring >= 0.9 && < 0.11,
50                    time                 < 1.5,
51                    containers >= 0.1 && < 0.6,
52                    array      >= 0.1 && < 0.6,
53                    filepath   >= 1   && < 1.4,
54                    Cabal,
55                    hpc,
56                    transformers
57
58     if flag(stage1) && impl(ghc < 7.5)
59         Build-Depends: old-time   >= 1   && < 1.2
60
61     if os(windows)
62         Build-Depends: Win32
63     else
64         Build-Depends: unix
65
66     GHC-Options: -Wall -fno-warn-name-shadowing
67
68     if flag(ghci)
69         Build-Depends: template-haskell
70         CPP-Options: -DGHCI
71         Include-Dirs: ../rts/dist/build @FFIIncludeDir@
72
73     Build-Depends: bin-package-db
74     Build-Depends: hoopl
75
76     Extensions: CPP, MagicHash, UnboxedTuples, PatternGuards,
77                 ForeignFunctionInterface, EmptyDataDecls,
78                 TypeSynonymInstances, MultiParamTypeClasses,
79                 FlexibleInstances, RankNTypes, ScopedTypeVariables,
80                 DeriveDataTypeable, BangPatterns
81     if impl(ghc >= 7.1)
82         Extensions: NondecreasingIndentation
83
84     Include-Dirs: . parser utils
85
86     if flag(stage1)
87         Include-Dirs: stage1
88     else
89         if flag(stage2)
90             Include-Dirs: stage2
91         else
92             if flag(stage3)
93                 Include-Dirs: stage2
94
95     Install-Includes: HsVersions.h, ghc_boot_platform.h
96
97     c-sources:
98         parser/cutils.c
99
100     c-sources:
101         ghci/keepCAFsForGHCi.c
102         cbits/genSym.c
103
104     hs-source-dirs:
105         basicTypes
106         cmm
107         codeGen
108         coreSyn
109         deSugar
110         ghci
111         hsSyn
112         iface
113         llvmGen
114         main
115         nativeGen
116         parser
117         prelude
118         profiling
119         rename
120         simplCore
121         simplStg
122         specialise
123         stgSyn
124         stranal
125         typecheck
126         types
127         utils
128         vectorise
129
130     Exposed-Modules:
131         Avail
132         BasicTypes
133         ConLike
134         DataCon
135         PatSyn
136         Demand
137         Exception
138         GhcMonad
139         Hooks
140         Id
141         IdInfo
142         Literal
143         Llvm
144         Llvm.AbsSyn
145         Llvm.MetaData
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         UnVarGraph
169         BlockId
170         CLabel
171         Cmm
172         CmmBuildInfoTables
173         CmmPipeline
174         CmmCallConv
175         CmmCommonBlockElim
176         CmmContFlowOpt
177         CmmExpr
178         CmmInfo
179         CmmLex
180         CmmLint
181         CmmLive
182         CmmMachOp
183         CmmNode
184         CmmOpt
185         CmmParse
186         CmmProcPoint
187         CmmSink
188         CmmType
189         CmmUtils
190         CmmLayoutStack
191         MkGraph
192         PprBase
193         PprC
194         PprCmm
195         PprCmmDecl
196         PprCmmExpr
197         Bitmap
198         CodeGen.Platform
199         CodeGen.Platform.ARM
200         CodeGen.Platform.NoRegs
201         CodeGen.Platform.PPC
202         CodeGen.Platform.PPC_Darwin
203         CodeGen.Platform.SPARC
204         CodeGen.Platform.X86
205         CodeGen.Platform.X86_64
206         CgUtils
207         StgCmm
208         StgCmmBind
209         StgCmmClosure
210         StgCmmCon
211         StgCmmEnv
212         StgCmmExpr
213         StgCmmForeign
214         StgCmmHeap
215         StgCmmHpc
216         StgCmmArgRep
217         StgCmmLayout
218         StgCmmMonad
219         StgCmmPrim
220         StgCmmProf
221         StgCmmTicky
222         StgCmmUtils
223         StgCmmExtCode
224         SMRep
225         CoreArity
226         CoreFVs
227         CoreLint
228         CorePrep
229         CoreSubst
230         CoreSyn
231         TrieMap
232         CoreTidy
233         CoreUnfold
234         CoreUtils
235         ExternalCore
236         MkCore
237         MkExternalCore
238         PprCore
239         PprExternalCore
240         Check
241         Coverage
242         Desugar
243         DsArrows
244         DsBinds
245         DsCCall
246         DsExpr
247         DsForeign
248         DsGRHSs
249         DsListComp
250         DsMonad
251         DsUtils
252         Match
253         MatchCon
254         MatchLit
255         HsBinds
256         HsDecls
257         HsDoc
258         HsExpr
259         HsImpExp
260         HsLit
261         HsPat
262         HsSyn
263         HsTypes
264         HsUtils
265         BinIface
266         BuildTyCl
267         IfaceEnv
268         IfaceSyn
269         IfaceType
270         LoadIface
271         MkIface
272         TcIface
273         FlagChecker
274         Annotations
275         BreakArray
276         CmdLineParser
277         CodeOutput
278         Config
279         Constants
280         DriverMkDepend
281         DriverPhases
282         PipelineMonad
283         DriverPipeline
284         DynFlags
285         ErrUtils
286         Finder
287         GHC
288         GhcMake
289         GhcPlugins
290         DynamicLoading
291         HeaderInfo
292         HscMain
293         HscStats
294         HscTypes
295         InteractiveEval
296         InteractiveEvalTypes
297         PackageConfig
298         Packages
299         PlatformConstants
300         PprTyThing
301         StaticFlags
302         SysTools
303         TidyPgm
304         Ctype
305         HaddockUtils
306         LexCore
307         Lexer
308         OptCoercion
309         Parser
310         ParserCore
311         ParserCoreUtils
312         RdrHsSyn
313         ForeignCall
314         PrelInfo
315         PrelNames
316         PrelRules
317         PrimOp
318         TysPrim
319         TysWiredIn
320         CostCentre
321         ProfInit
322         SCCfinal
323         RnBinds
324         RnEnv
325         RnExpr
326         RnHsDoc
327         RnNames
328         RnPat
329         RnSource
330         RnSplice
331         RnTypes
332         CoreMonad
333         CSE
334         FloatIn
335         FloatOut
336         LiberateCase
337         OccurAnal
338         SAT
339         SetLevels
340         SimplCore
341         SimplEnv
342         SimplMonad
343         SimplUtils
344         Simplify
345         SimplStg
346         StgStats
347         UnariseStg
348         Rules
349         SpecConstr
350         Specialise
351         CoreToStg
352         StgLint
353         StgSyn
354         CallArity
355         DmdAnal
356         WorkWrap
357         WwLib
358         FamInst
359         Inst
360         TcAnnotations
361         TcArrows
362         TcBinds
363         TcClassDcl
364         TcDefaults
365         TcDeriv
366         TcEnv
367         TcExpr
368         TcForeign
369         TcGenDeriv
370         TcGenGenerics
371         TcHsSyn
372         TcHsType
373         TcInstDcls
374         TcMType
375         TcValidity
376         TcMatches
377         TcPat
378         TcPatSyn
379         TcRnDriver
380         TcRnMonad
381         TcRnTypes
382         TcRules
383         TcSimplify
384         TcErrors
385         TcTyClsDecls
386         TcTyDecls
387         TcType
388         TcEvidence
389         TcUnify
390         TcInteract
391         TcCanonical
392         TcSMonad
393         TcTypeNats
394         TcSplice
395         Class
396         Coercion
397         FamInstEnv
398         FunDeps
399         InstEnv
400         TyCon
401         CoAxiom
402         Kind
403         Type
404         TypeRep
405         Unify
406         Bag
407         Binary
408         BooleanFormula
409         BufWrite
410         Digraph
411         Encoding
412         FastBool
413         FastFunctions
414         FastMutInt
415         FastString
416         FastTypes
417         Fingerprint
418         FiniteMap
419         GraphBase
420         GraphColor
421         GraphOps
422         GraphPpr
423         IOEnv
424         ListSetOps
425         Maybes
426         MonadUtils
427         OrdList
428         Outputable
429         Pair
430         Panic
431         Pretty
432         Serialized
433         State
434         Stream
435         StringBuffer
436         UniqFM
437         UniqSet
438         Util
439         ExtsCompat46
440 --      ^^^  a temporary module necessary to bootstrap with GHC <= 7.6
441         Vectorise.Builtins.Base
442         Vectorise.Builtins.Initialise
443         Vectorise.Builtins
444         Vectorise.Monad.Base
445         Vectorise.Monad.Naming
446         Vectorise.Monad.Local
447         Vectorise.Monad.Global
448         Vectorise.Monad.InstEnv
449         Vectorise.Monad
450         Vectorise.Utils.Base
451         Vectorise.Utils.Closure
452         Vectorise.Utils.Hoisting
453         Vectorise.Utils.PADict
454         Vectorise.Utils.Poly
455         Vectorise.Utils
456         Vectorise.Generic.Description
457         Vectorise.Generic.PAMethods
458         Vectorise.Generic.PADict
459         Vectorise.Generic.PData
460         Vectorise.Type.Env
461         Vectorise.Type.Type
462         Vectorise.Type.TyConDecl
463         Vectorise.Type.Classify
464         Vectorise.Convert
465         Vectorise.Vect
466         Vectorise.Var
467         Vectorise.Env
468         Vectorise.Exp
469         Vectorise
470         Hoopl.Dataflow
471         Hoopl
472 --        CgInfoTbls used in ghci/DebuggerUtils
473 --        CgHeapery  mkVirtHeapOffsets used in ghci
474
475     Exposed-Modules:
476             AsmCodeGen
477             TargetReg
478             NCGMonad
479             Instruction
480             Size
481             Reg
482             RegClass
483             PIC
484             Platform
485             CPrim
486             X86.Regs
487             X86.RegInfo
488             X86.Instr
489             X86.Cond
490             X86.Ppr
491             X86.CodeGen
492             PPC.Regs
493             PPC.RegInfo
494             PPC.Instr
495             PPC.Cond
496             PPC.Ppr
497             PPC.CodeGen
498             SPARC.Base
499             SPARC.Regs
500             SPARC.Imm
501             SPARC.AddrMode
502             SPARC.Cond
503             SPARC.Instr
504             SPARC.Stack
505             SPARC.ShortcutJump
506             SPARC.Ppr
507             SPARC.CodeGen
508             SPARC.CodeGen.Amode
509             SPARC.CodeGen.Base
510             SPARC.CodeGen.CondCode
511             SPARC.CodeGen.Gen32
512             SPARC.CodeGen.Gen64
513             SPARC.CodeGen.Sanity
514             SPARC.CodeGen.Expand
515             RegAlloc.Liveness
516             RegAlloc.Graph.Main
517             RegAlloc.Graph.Stats
518             RegAlloc.Graph.ArchBase
519             RegAlloc.Graph.ArchX86
520             RegAlloc.Graph.Coalesce
521             RegAlloc.Graph.Spill
522             RegAlloc.Graph.SpillClean
523             RegAlloc.Graph.SpillCost
524             RegAlloc.Graph.TrivColorable
525             RegAlloc.Linear.Main
526             RegAlloc.Linear.JoinToTargets
527             RegAlloc.Linear.State
528             RegAlloc.Linear.Stats
529             RegAlloc.Linear.FreeRegs
530             RegAlloc.Linear.StackMap
531             RegAlloc.Linear.Base
532             RegAlloc.Linear.X86.FreeRegs
533             RegAlloc.Linear.X86_64.FreeRegs
534             RegAlloc.Linear.PPC.FreeRegs
535             RegAlloc.Linear.SPARC.FreeRegs
536
537     if flag(ghci)
538         Exposed-Modules:
539             DsMeta
540             Convert
541             ByteCodeAsm
542             ByteCodeGen
543             ByteCodeInstr
544             ByteCodeItbls
545             ByteCodeLink
546             Debugger
547             LibFFI
548             Linker
549             ObjLink
550             RtClosureInspect
551             DebuggerUtils