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