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