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