a542b379cb752ed2abccf9b155b94fec015ddc9b
[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: @ProjectVersionMunged@
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 extra-source-files:
24     utils/md5.h
25     Unique.h
26     nativeGen/NCG.h
27     parser/cutils.h
28
29 Flag ghci
30     Description: Build GHCi support.
31     Default: False
32     Manual: True
33
34 Flag terminfo
35     Description: Build GHC with terminfo support on non-Windows platforms.
36     Default: True
37     Manual: True
38
39 Flag stage1
40     Description: Build Stage1 GHC (STAGE=1)
41     Default: False
42     Manual: True
43
44 Flag stage2
45     Description: Build Stage1 GHC (STAGE=2)
46     Default: True
47     Manual: True
48
49 Flag stage3
50     Description: Build Stage1 GHC (STAGE=3)
51     Default: False
52     Manual: True
53
54 Library
55     Default-Language: Haskell2010
56     Exposed: False
57
58     Build-Depends: base       >= 4.9 && < 5,
59                    deepseq    >= 1.4 && < 1.5,
60                    directory  >= 1   && < 1.4,
61                    process    >= 1   && < 1.7,
62                    bytestring >= 0.9 && < 0.11,
63                    binary     == 0.8.*,
64                    time       >= 1.4 && < 1.9,
65                    containers >= 0.5 && < 0.7,
66                    array      >= 0.1 && < 0.6,
67                    filepath   >= 1   && < 1.5,
68                    template-haskell == 2.14.*,
69                    hpc        == 0.6.*,
70                    transformers == 0.5.*,
71                    ghc-boot   == @ProjectVersionMunged@,
72                    ghc-boot-th == @ProjectVersionMunged@,
73                    ghc-heap   == @ProjectVersionMunged@,
74                    ghci == @ProjectVersionMunged@
75
76     if os(windows)
77         Build-Depends: Win32  >= 2.3 && < 2.7
78     else
79         if flag(terminfo)
80             Build-Depends: terminfo == 0.4.*
81         Build-Depends: unix   >= 2.7 && < 2.9
82
83     GHC-Options: -Wall
84                  -Wno-name-shadowing
85                  -Wnoncanonical-monad-instances
86                  -Wnoncanonical-monadfail-instances
87                  -Wnoncanonical-monoid-instances
88
89     if flag(stage1)
90         CPP-Options: -DSTAGE=1
91     else 
92         if flag(stage2)
93             CPP-Options: -DSTAGE=2
94         else
95             if flag(stage3)
96                 CPP-Options: -DSTAGE=3
97
98     if flag(ghci)
99         CPP-Options: -DGHCI
100         Include-Dirs: ../rts/dist/build @FFIIncludeDir@
101
102     Other-Extensions:
103         BangPatterns
104         CPP
105         DataKinds
106         DeriveDataTypeable
107         DeriveFoldable
108         DeriveFunctor
109         DeriveTraversable
110         DisambiguateRecordFields
111         ExplicitForAll
112         FlexibleContexts
113         FlexibleInstances
114         GADTs
115         GeneralizedNewtypeDeriving
116         MagicHash
117         MultiParamTypeClasses
118         NamedFieldPuns
119         NondecreasingIndentation
120         RankNTypes
121         RecordWildCards
122         ScopedTypeVariables
123         StandaloneDeriving
124         Trustworthy
125         TupleSections
126         TypeFamilies
127         TypeSynonymInstances
128         UnboxedTuples
129         UndecidableInstances
130
131     Include-Dirs: . parser utils
132
133     -- We need to set the unit id to ghc (without a version number)
134     -- as it's magic.
135     GHC-Options: -this-unit-id ghc
136
137     c-sources:
138         parser/cutils.c
139         ghci/keepCAFsForGHCi.c
140         cbits/genSym.c
141
142     hs-source-dirs:
143         backpack
144         basicTypes
145         cmm
146         codeGen
147         coreSyn
148         deSugar
149         ghci
150         hsSyn
151         iface
152         llvmGen
153         main
154         nativeGen
155         parser
156         prelude
157         profiling
158         rename
159         simplCore
160         simplStg
161         specialise
162         stgSyn
163         stranal
164         typecheck
165         types
166         utils
167
168     -- we use an explicit Prelude
169     Default-Extensions:
170         NoImplicitPrelude
171
172     Other-Modules:
173         GhcPrelude
174
175     Exposed-Modules:
176         Ar
177         FileCleanup
178         DriverBkp
179         BkpSyn
180         NameShape
181         RnModIface
182         Avail
183         AsmUtils
184         BasicTypes
185         ConLike
186         DataCon
187         PatSyn
188         Demand
189         Debug
190         Exception
191         FieldLabel
192         GhcMonad
193         Hooks
194         Id
195         IdInfo
196         Lexeme
197         Literal
198         Llvm
199         Llvm.AbsSyn
200         Llvm.MetaData
201         Llvm.PpLlvm
202         Llvm.Types
203         LlvmCodeGen
204         LlvmCodeGen.Base
205         LlvmCodeGen.CodeGen
206         LlvmCodeGen.Data
207         LlvmCodeGen.Ppr
208         LlvmCodeGen.Regs
209         LlvmMangler
210         MkId
211         Module
212         Name
213         NameEnv
214         NameSet
215         OccName
216         RdrName
217         NameCache
218         SrcLoc
219         UniqSupply
220         Unique
221         Var
222         VarEnv
223         VarSet
224         UnVarGraph
225         BlockId
226         CLabel
227         Cmm
228         CmmBuildInfoTables
229         CmmPipeline
230         CmmCallConv
231         CmmCommonBlockElim
232         CmmImplementSwitchPlans
233         CmmContFlowOpt
234         CmmExpr
235         CmmInfo
236         CmmLex
237         CmmLint
238         CmmLive
239         CmmMachOp
240         CmmMonad
241         CmmSwitch
242         CmmNode
243         CmmOpt
244         CmmParse
245         CmmProcPoint
246         CmmSink
247         CmmType
248         CmmUtils
249         CmmLayoutStack
250         EnumSet
251         MkGraph
252         PprBase
253         PprC
254         PprCmm
255         PprCmmDecl
256         PprCmmExpr
257         Bitmap
258         CodeGen.Platform
259         CodeGen.Platform.ARM
260         CodeGen.Platform.ARM64
261         CodeGen.Platform.NoRegs
262         CodeGen.Platform.PPC
263         CodeGen.Platform.PPC_Darwin
264         CodeGen.Platform.SPARC
265         CodeGen.Platform.X86
266         CodeGen.Platform.X86_64
267         CgUtils
268         StgCmm
269         StgCmmBind
270         StgCmmClosure
271         StgCmmCon
272         StgCmmEnv
273         StgCmmExpr
274         StgCmmForeign
275         StgCmmHeap
276         StgCmmHpc
277         StgCmmArgRep
278         StgCmmLayout
279         StgCmmMonad
280         StgCmmPrim
281         StgCmmProf
282         StgCmmTicky
283         StgCmmUtils
284         StgCmmExtCode
285         SMRep
286         CoreArity
287         CoreFVs
288         CoreLint
289         CorePrep
290         CoreSubst
291         CoreOpt
292         CoreSyn
293         TrieMap
294         CoreTidy
295         CoreUnfold
296         CoreUtils
297         CoreMap
298         CoreSeq
299         CoreStats
300         MkCore
301         PprCore
302         PmExpr
303         TmOracle
304         Check
305         Coverage
306         Desugar
307         DsArrows
308         DsBinds
309         DsCCall
310         DsExpr
311         DsForeign
312         DsGRHSs
313         DsListComp
314         DsMonad
315         DsUsage
316         DsUtils
317         ExtractDocs
318         Match
319         MatchCon
320         MatchLit
321         HsBinds
322         HsDecls
323         HsDoc
324         HsExpr
325         HsImpExp
326         HsLit
327         PlaceHolder
328         HsExtension
329         HsInstances
330         HsPat
331         HsSyn
332         HsTypes
333         HsUtils
334         HsDumpAst
335         BinIface
336         BinFingerprint
337         BuildTyCl
338         IfaceEnv
339         IfaceSyn
340         IfaceType
341         ToIface
342         LoadIface
343         MkIface
344         TcIface
345         FlagChecker
346         Annotations
347         CmdLineParser
348         CodeOutput
349         Config
350         Constants
351         DriverMkDepend
352         DriverPhases
353         PipelineMonad
354         DriverPipeline
355         DynFlags
356         ErrUtils
357         Finder
358         GHC
359         GhcMake
360         GhcPlugins
361         DynamicLoading
362         HeaderInfo
363         HscMain
364         HscStats
365         HscTypes
366         InteractiveEval
367         InteractiveEvalTypes
368         PackageConfig
369         Packages
370         PlatformConstants
371         Plugins
372         TcPluginM
373         PprTyThing
374         StaticPtrTable
375         SysTools
376         SysTools.BaseDir
377         SysTools.Terminal
378         SysTools.ExtraObj
379         SysTools.Info
380         SysTools.Process
381         SysTools.Tasks
382         Elf
383         TidyPgm
384         Ctype
385         HaddockUtils
386         Lexer
387         OptCoercion
388         Parser
389         RdrHsSyn
390         ApiAnnotation
391         ForeignCall
392         KnownUniques
393         PrelInfo
394         PrelNames
395         PrelRules
396         PrimOp
397         TysPrim
398         TysWiredIn
399         CostCentre
400         CostCentreState
401         ProfInit
402         RnBinds
403         RnEnv
404         RnExpr
405         RnHsDoc
406         RnNames
407         RnPat
408         RnSource
409         RnSplice
410         RnTypes
411         RnFixity
412         RnUtils
413         RnUnbound
414         CoreMonad
415         CSE
416         FloatIn
417         FloatOut
418         LiberateCase
419         OccurAnal
420         SAT
421         SetLevels
422         SimplCore
423         SimplEnv
424         SimplMonad
425         SimplUtils
426         Simplify
427         SimplStg
428         StgStats
429         StgCse
430         UnariseStg
431         RepType
432         Rules
433         SpecConstr
434         Specialise
435         CoreToStg
436         StgLint
437         StgSyn
438         CallArity
439         DmdAnal
440         Exitify
441         WorkWrap
442         WwLib
443         FamInst
444         Inst
445         TcAnnotations
446         TcArrows
447         TcBinds
448         TcSigs
449         TcClassDcl
450         TcDefaults
451         TcDeriv
452         TcDerivInfer
453         TcDerivUtils
454         TcEnv
455         TcExpr
456         TcForeign
457         TcGenDeriv
458         TcGenFunctor
459         TcGenGenerics
460         TcHsSyn
461         TcHsType
462         TcInstDcls
463         TcMType
464         TcValidity
465         TcMatches
466         TcPat
467         TcPatSyn
468         TcRnDriver
469         TcBackpack
470         TcRnExports
471         TcRnMonad
472         TcRnTypes
473         TcRules
474         TcSimplify
475         TcHoleErrors
476         TcErrors
477         TcTyClsDecls
478         TcTyDecls
479         TcTypeable
480         TcType
481         TcEvidence
482         TcEvTerm
483         TcUnify
484         TcInteract
485         TcCanonical
486         TcFlatten
487         TcSMonad
488         TcTypeNats
489         TcSplice
490         Class
491         Coercion
492         DsMeta
493         THNames
494         FamInstEnv
495         FunDeps
496         InstEnv
497         TyCon
498         CoAxiom
499         Kind
500         Type
501         TyCoRep
502         Unify
503         Bag
504         Binary
505         BooleanFormula
506         BufWrite
507         Digraph
508         Encoding
509         FastFunctions
510         FastMutInt
511         FastString
512         FastStringEnv
513         Fingerprint
514         FiniteMap
515         FV
516         GraphBase
517         GraphColor
518         GraphOps
519         GraphPpr
520         IOEnv
521         Json
522         ListSetOps
523         ListT
524         Maybes
525         MonadUtils
526         OrdList
527         Outputable
528         Pair
529         Panic
530         PprColour
531         Pretty
532         State
533         Stream
534         StringBuffer
535         UniqDFM
536         UniqDSet
537         UniqFM
538         UniqMap
539         UniqSet
540         Util
541         Hoopl.Block
542         Hoopl.Collections
543         Hoopl.Dataflow
544         Hoopl.Graph
545         Hoopl.Label
546 --        CgInfoTbls used in ghci/DebuggerUtils
547 --        CgHeapery  mkVirtHeapOffsets used in ghci
548
549     Exposed-Modules:
550             AsmCodeGen
551             TargetReg
552             NCGMonad
553             Instruction
554             Format
555             Reg
556             RegClass
557             PIC
558             Platform
559             CPrim
560             X86.Regs
561             X86.RegInfo
562             X86.Instr
563             X86.Cond
564             X86.Ppr
565             X86.CodeGen
566             PPC.Regs
567             PPC.RegInfo
568             PPC.Instr
569             PPC.Cond
570             PPC.Ppr
571             PPC.CodeGen
572             SPARC.Base
573             SPARC.Regs
574             SPARC.Imm
575             SPARC.AddrMode
576             SPARC.Cond
577             SPARC.Instr
578             SPARC.Stack
579             SPARC.ShortcutJump
580             SPARC.Ppr
581             SPARC.CodeGen
582             SPARC.CodeGen.Amode
583             SPARC.CodeGen.Base
584             SPARC.CodeGen.CondCode
585             SPARC.CodeGen.Gen32
586             SPARC.CodeGen.Gen64
587             SPARC.CodeGen.Sanity
588             SPARC.CodeGen.Expand
589             RegAlloc.Liveness
590             RegAlloc.Graph.Main
591             RegAlloc.Graph.Stats
592             RegAlloc.Graph.ArchBase
593             RegAlloc.Graph.ArchX86
594             RegAlloc.Graph.Coalesce
595             RegAlloc.Graph.Spill
596             RegAlloc.Graph.SpillClean
597             RegAlloc.Graph.SpillCost
598             RegAlloc.Graph.TrivColorable
599             RegAlloc.Linear.Main
600             RegAlloc.Linear.JoinToTargets
601             RegAlloc.Linear.State
602             RegAlloc.Linear.Stats
603             RegAlloc.Linear.FreeRegs
604             RegAlloc.Linear.StackMap
605             RegAlloc.Linear.Base
606             RegAlloc.Linear.X86.FreeRegs
607             RegAlloc.Linear.X86_64.FreeRegs
608             RegAlloc.Linear.PPC.FreeRegs
609             RegAlloc.Linear.SPARC.FreeRegs
610             Dwarf
611             Dwarf.Types
612             Dwarf.Constants
613             Convert
614             ByteCodeTypes
615             ByteCodeAsm
616             ByteCodeGen
617             ByteCodeInstr
618             ByteCodeItbls
619             ByteCodeLink
620             Debugger
621             Linker
622             RtClosureInspect
623             GHCi