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