ghc.cabal: Backpack directory no longer exists
[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.5,
50                    bytestring >= 0.9 && < 0.11,
51                    binary     == 0.8.*,
52                    time                 < 1.6,
53                    containers >= 0.5 && < 0.6,
54                    array      >= 0.1 && < 0.6,
55                    filepath   >= 1   && < 1.5,
56                    template-haskell,
57                    hpc,
58                    transformers,
59                    ghc-boot,
60                    hoopl
61
62     if os(windows)
63         Build-Depends: Win32
64     else
65         Build-Depends: unix
66
67     if flag(ghci)
68         Build-Depends: ghci
69
70     GHC-Options: -Wall -fno-warn-name-shadowing
71
72     if flag(ghci)
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 impl( ghc >= 7.9 )
108         -- We need to set the unit id to ghc (without a version number)
109         -- as it's magic.  But we can't set it for old versions of GHC (e.g.
110         -- when bootstrapping) because those versions of GHC don't understand
111         -- that GHC is wired-in.
112         GHC-Options: -this-package-key ghc
113
114     if flag(stage1)
115         Include-Dirs: stage1
116     else
117         if flag(stage2)
118             Include-Dirs: stage2
119         else
120             if flag(stage3)
121                 Include-Dirs: stage2
122
123     Install-Includes: HsVersions.h, ghc_boot_platform.h
124
125     c-sources:
126         parser/cutils.c
127         ghci/keepCAFsForGHCi.c
128         cbits/genSym.c
129
130     hs-source-dirs:
131         basicTypes
132         cmm
133         codeGen
134         coreSyn
135         deSugar
136         ghci
137         hsSyn
138         iface
139         llvmGen
140         main
141         nativeGen
142         parser
143         prelude
144         profiling
145         rename
146         simplCore
147         simplStg
148         specialise
149         stgSyn
150         stranal
151         typecheck
152         types
153         utils
154         vectorise
155
156     Exposed-Modules:
157         Avail
158         BasicTypes
159         ConLike
160         DataCon
161         PatSyn
162         Demand
163         Debug
164         Exception
165         FieldLabel
166         GhcMonad
167         Hooks
168         Id
169         IdInfo
170         Lexeme
171         Literal
172         Llvm
173         Llvm.AbsSyn
174         Llvm.MetaData
175         Llvm.PpLlvm
176         Llvm.Types
177         LlvmCodeGen
178         LlvmCodeGen.Base
179         LlvmCodeGen.CodeGen
180         LlvmCodeGen.Data
181         LlvmCodeGen.Ppr
182         LlvmCodeGen.Regs
183         LlvmMangler
184         MkId
185         Module
186         Name
187         NameEnv
188         NameSet
189         OccName
190         RdrName
191         SrcLoc
192         UniqSupply
193         Unique
194         Var
195         VarEnv
196         VarSet
197         UnVarGraph
198         BlockId
199         CLabel
200         Cmm
201         CmmBuildInfoTables
202         CmmPipeline
203         CmmCallConv
204         CmmCommonBlockElim
205         CmmImplementSwitchPlans
206         CmmContFlowOpt
207         CmmExpr
208         CmmInfo
209         CmmLex
210         CmmLint
211         CmmLive
212         CmmMachOp
213         CmmSwitch
214         CmmNode
215         CmmOpt
216         CmmParse
217         CmmProcPoint
218         CmmSink
219         CmmType
220         CmmUtils
221         CmmLayoutStack
222         MkGraph
223         PprBase
224         PprC
225         PprCmm
226         PprCmmDecl
227         PprCmmExpr
228         Bitmap
229         CodeGen.Platform
230         CodeGen.Platform.ARM
231         CodeGen.Platform.ARM64
232         CodeGen.Platform.NoRegs
233         CodeGen.Platform.PPC
234         CodeGen.Platform.PPC_Darwin
235         CodeGen.Platform.SPARC
236         CodeGen.Platform.X86
237         CodeGen.Platform.X86_64
238         CgUtils
239         StgCmm
240         StgCmmBind
241         StgCmmClosure
242         StgCmmCon
243         StgCmmEnv
244         StgCmmExpr
245         StgCmmForeign
246         StgCmmHeap
247         StgCmmHpc
248         StgCmmArgRep
249         StgCmmLayout
250         StgCmmMonad
251         StgCmmPrim
252         StgCmmProf
253         StgCmmTicky
254         StgCmmUtils
255         StgCmmExtCode
256         SMRep
257         CoreArity
258         CoreFVs
259         CoreLint
260         CorePrep
261         CoreSubst
262         CoreSyn
263         TrieMap
264         CoreTidy
265         CoreUnfold
266         CoreUtils
267         CoreSeq
268         CoreStats
269         MkCore
270         PprCore
271         PmExpr
272         TmOracle
273         Check
274         Coverage
275         Desugar
276         DsArrows
277         DsBinds
278         DsCCall
279         DsExpr
280         DsForeign
281         DsGRHSs
282         DsListComp
283         DsMonad
284         DsUtils
285         Match
286         MatchCon
287         MatchLit
288         HsBinds
289         HsDecls
290         HsDoc
291         HsExpr
292         HsImpExp
293         HsLit
294         PlaceHolder
295         HsPat
296         HsSyn
297         HsTypes
298         HsUtils
299         BinIface
300         BuildTyCl
301         IfaceEnv
302         IfaceSyn
303         IfaceType
304         LoadIface
305         MkIface
306         TcIface
307         FlagChecker
308         Annotations
309         BreakArray
310         CmdLineParser
311         CodeOutput
312         Config
313         Constants
314         DriverMkDepend
315         DriverPhases
316         PipelineMonad
317         DriverPipeline
318         DynFlags
319         ErrUtils
320         Finder
321         GHC
322         GhcMake
323         GhcPlugins
324         DynamicLoading
325         HeaderInfo
326         HscMain
327         HscStats
328         HscTypes
329         InteractiveEval
330         InteractiveEvalTypes
331         PackageConfig
332         Packages
333         PlatformConstants
334         Plugins
335         TcPluginM
336         PprTyThing
337         StaticFlags
338         StaticPtrTable
339         SysTools
340         Elf
341         TidyPgm
342         Ctype
343         HaddockUtils
344         Lexer
345         OptCoercion
346         Parser
347         RdrHsSyn
348         ApiAnnotation
349         ForeignCall
350         PrelInfo
351         PrelNames
352         PrelRules
353         PrimOp
354         TysPrim
355         TysWiredIn
356         CostCentre
357         ProfInit
358         SCCfinal
359         RnBinds
360         RnEnv
361         RnExpr
362         RnHsDoc
363         RnNames
364         RnPat
365         RnSource
366         RnSplice
367         RnTypes
368         CoreMonad
369         CSE
370         FloatIn
371         FloatOut
372         LiberateCase
373         OccurAnal
374         SAT
375         SetLevels
376         SimplCore
377         SimplEnv
378         SimplMonad
379         SimplUtils
380         Simplify
381         SimplStg
382         StgStats
383         UnariseStg
384         Rules
385         SpecConstr
386         Specialise
387         CoreToStg
388         StgLint
389         StgSyn
390         CallArity
391         DmdAnal
392         WorkWrap
393         WwLib
394         FamInst
395         Inst
396         TcAnnotations
397         TcArrows
398         TcBinds
399         TcClassDcl
400         TcDefaults
401         TcDeriv
402         TcEnv
403         TcExpr
404         TcForeign
405         TcGenDeriv
406         TcGenGenerics
407         TcHsSyn
408         TcHsType
409         TcInstDcls
410         TcMType
411         TcValidity
412         TcMatches
413         TcPat
414         TcPatSyn
415         TcRnDriver
416         TcRnMonad
417         TcRnTypes
418         TcRules
419         TcSimplify
420         TcErrors
421         TcTyClsDecls
422         TcTyDecls
423         TcTypeable
424         TcType
425         TcEvidence
426         TcUnify
427         TcInteract
428         TcCanonical
429         TcFlatten
430         TcSMonad
431         TcTypeNats
432         TcSplice
433         Class
434         Coercion
435         DsMeta
436         THNames
437         FamInstEnv
438         FunDeps
439         InstEnv
440         TyCon
441         CoAxiom
442         Kind
443         Type
444         TyCoRep
445         Unify
446         Bag
447         Binary
448         BooleanFormula
449         BufWrite
450         Digraph
451         Encoding
452         FastFunctions
453         FastMutInt
454         FastString
455         FastStringEnv
456         Fingerprint
457         FiniteMap
458         FV
459         GraphBase
460         GraphColor
461         GraphOps
462         GraphPpr
463         IOEnv
464         ListSetOps
465         Maybes
466         MonadUtils
467         OrdList
468         Outputable
469         Pair
470         Panic
471         Pretty
472         State
473         Stream
474         StringBuffer
475         UniqDFM
476         UniqDSet
477         UniqFM
478         UniqSet
479         Util
480         Vectorise.Builtins.Base
481         Vectorise.Builtins.Initialise
482         Vectorise.Builtins
483         Vectorise.Monad.Base
484         Vectorise.Monad.Naming
485         Vectorise.Monad.Local
486         Vectorise.Monad.Global
487         Vectorise.Monad.InstEnv
488         Vectorise.Monad
489         Vectorise.Utils.Base
490         Vectorise.Utils.Closure
491         Vectorise.Utils.Hoisting
492         Vectorise.Utils.PADict
493         Vectorise.Utils.Poly
494         Vectorise.Utils
495         Vectorise.Generic.Description
496         Vectorise.Generic.PAMethods
497         Vectorise.Generic.PADict
498         Vectorise.Generic.PData
499         Vectorise.Type.Env
500         Vectorise.Type.Type
501         Vectorise.Type.TyConDecl
502         Vectorise.Type.Classify
503         Vectorise.Convert
504         Vectorise.Vect
505         Vectorise.Var
506         Vectorise.Env
507         Vectorise.Exp
508         Vectorise
509         Hoopl.Dataflow
510         Hoopl
511 --        CgInfoTbls used in ghci/DebuggerUtils
512 --        CgHeapery  mkVirtHeapOffsets used in ghci
513
514     Exposed-Modules:
515             AsmCodeGen
516             TargetReg
517             NCGMonad
518             Instruction
519             Format
520             Reg
521             RegClass
522             PIC
523             Platform
524             CPrim
525             X86.Regs
526             X86.RegInfo
527             X86.Instr
528             X86.Cond
529             X86.Ppr
530             X86.CodeGen
531             PPC.Regs
532             PPC.RegInfo
533             PPC.Instr
534             PPC.Cond
535             PPC.Ppr
536             PPC.CodeGen
537             SPARC.Base
538             SPARC.Regs
539             SPARC.Imm
540             SPARC.AddrMode
541             SPARC.Cond
542             SPARC.Instr
543             SPARC.Stack
544             SPARC.ShortcutJump
545             SPARC.Ppr
546             SPARC.CodeGen
547             SPARC.CodeGen.Amode
548             SPARC.CodeGen.Base
549             SPARC.CodeGen.CondCode
550             SPARC.CodeGen.Gen32
551             SPARC.CodeGen.Gen64
552             SPARC.CodeGen.Sanity
553             SPARC.CodeGen.Expand
554             RegAlloc.Liveness
555             RegAlloc.Graph.Main
556             RegAlloc.Graph.Stats
557             RegAlloc.Graph.ArchBase
558             RegAlloc.Graph.ArchX86
559             RegAlloc.Graph.Coalesce
560             RegAlloc.Graph.Spill
561             RegAlloc.Graph.SpillClean
562             RegAlloc.Graph.SpillCost
563             RegAlloc.Graph.TrivColorable
564             RegAlloc.Linear.Main
565             RegAlloc.Linear.JoinToTargets
566             RegAlloc.Linear.State
567             RegAlloc.Linear.Stats
568             RegAlloc.Linear.FreeRegs
569             RegAlloc.Linear.StackMap
570             RegAlloc.Linear.Base
571             RegAlloc.Linear.X86.FreeRegs
572             RegAlloc.Linear.X86_64.FreeRegs
573             RegAlloc.Linear.PPC.FreeRegs
574             RegAlloc.Linear.SPARC.FreeRegs
575             Dwarf
576             Dwarf.Types
577             Dwarf.Constants
578
579     if flag(ghci)
580         Exposed-Modules:
581             Convert
582             ByteCodeTypes
583             ByteCodeAsm
584             ByteCodeGen
585             ByteCodeInstr
586             ByteCodeItbls
587             ByteCodeLink
588             Debugger
589             Linker
590             RtClosureInspect
591             DebuggerUtils
592             GHCi