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