ghc.cabal.in 13.1 KB
Newer Older
Ian Lynagh's avatar
Ian Lynagh committed
1 2 3
-- WARNING: ghc.cabal is automatically generated from ghc.cabal.in by
-- ./configure.  Make sure you are editing ghc.cabal.in, not ghc.cabal.

4
Name: ghc
5
Version: @ProjectVersionMunged@
6
License: BSD3
7
License-File: LICENSE
8
Author: The GHC Team
9 10
Maintainer: glasgow-haskell-users@haskell.org
Homepage: http://www.haskell.org/ghc/
11
Synopsis: The GHC API
12
Description:
13 14 15 16 17 18 19
    GHC's functionality can be useful for more things than just
    compiling Haskell programs. Important use cases are programs
    that analyse (and perhaps transform) Haskell code. Others
    include loading Haskell code dynamically in a GHCi-like manner.
    For this reason, a lot of GHC's functionality is made available
    through this package.
Category: Development
20
Build-Type: Simple
21
Cabal-Version: >=1.10
22 23 24

Flag ghci
    Description: Build GHCi support.
25 26
    Default: False
    Manual: True
27 28 29

Flag stage1
    Description: Is this stage 1?
Ian Lynagh's avatar
Ian Lynagh committed
30
    Default: False
31
    Manual: True
Ian Lynagh's avatar
Ian Lynagh committed
32 33 34 35

Flag stage2
    Description: Is this stage 2?
    Default: False
36
    Manual: True
Ian Lynagh's avatar
Ian Lynagh committed
37 38 39 40

Flag stage3
    Description: Is this stage 3?
    Default: False
41
    Manual: True
42

Rufflewind's avatar
Rufflewind committed
43 44 45 46 47
Flag terminfo
    Description: Build GHC with terminfo support on non-Windows platforms.
    Default: True
    Manual: True

48 49 50 51 52
Flag integer-gmp
    Description: Use integer-gmp
    Manual: True
    Default: False

53
Library
54
    Default-Language: Haskell2010
55 56
    Exposed: False

57
    Build-Depends: base       >= 4.9 && < 5,
58
                   deepseq    >= 1.4 && < 1.5,
Ben Gamari's avatar
Ben Gamari committed
59
                   directory  >= 1   && < 1.4,
Ben Gamari's avatar
Ben Gamari committed
60
                   process    >= 1   && < 1.7,
Ian Lynagh's avatar
Ian Lynagh committed
61
                   bytestring >= 0.9 && < 0.11,
62
                   binary     == 0.8.*,
Ben Gamari's avatar
Ben Gamari committed
63
                   time       >= 1.4 && < 1.9,
Ben Gamari's avatar
Ben Gamari committed
64
                   containers >= 0.5 && < 0.7,
65
                   array      >= 0.1 && < 0.6,
66
                   filepath   >= 1   && < 1.5,
Ryan Scott's avatar
Ryan Scott committed
67
                   template-haskell == 2.14.*,
68 69 70
                   hpc        == 0.6.*,
                   transformers == 0.5.*,
                   ghc-boot   == @ProjectVersionMunged@,
71
                   ghc-boot-th == @ProjectVersionMunged@,
patrickdoc's avatar
patrickdoc committed
72
                   ghc-heap   == @ProjectVersionMunged@,
73
                   ghci == @ProjectVersionMunged@
Ian Lynagh's avatar
Ian Lynagh committed
74

75
    if os(windows)
76
        Build-Depends: Win32  >= 2.3 && < 2.7
77
    else
Rufflewind's avatar
Rufflewind committed
78 79
        if flag(terminfo)
            Build-Depends: terminfo == 0.4.*
80
        Build-Depends: unix   >= 2.7 && < 2.9
81

82 83 84
    GHC-Options: -Wall
                 -Wno-name-shadowing
                 -Wnoncanonical-monad-instances
85
                 -Wnoncanonical-monadfail-instances
86
                 -Wnoncanonical-monoid-instances
87 88 89

    if flag(ghci)
        CPP-Options: -DGHCI
90
        Include-Dirs: ../rts/dist/build @FFIIncludeDir@
91

92 93 94 95 96
    -- gmp internals are used by the GHCi debugger if available
    if flag(integer-gmp)
        CPP-Options: -DINTEGER_GMP
        build-depends: integer-gmp >= 1.0.2

97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
    Other-Extensions:
        BangPatterns
        CPP
        DataKinds
        DeriveDataTypeable
        DeriveFoldable
        DeriveFunctor
        DeriveTraversable
        DisambiguateRecordFields
        ExplicitForAll
        FlexibleContexts
        FlexibleInstances
        GADTs
        GeneralizedNewtypeDeriving
        MagicHash
        MultiParamTypeClasses
        NamedFieldPuns
        NondecreasingIndentation
        RankNTypes
        RecordWildCards
        ScopedTypeVariables
        StandaloneDeriving
        Trustworthy
        TupleSections
        TypeFamilies
        TypeSynonymInstances
        UnboxedTuples
        UndecidableInstances
125 126 127

    Include-Dirs: . parser utils

128
    -- We need to set the unit id to ghc (without a version number)
129 130
    -- as it's magic.
    GHC-Options: -this-unit-id ghc
131

132 133 134
    if flag(stage1)
        Include-Dirs: stage1
    else
Ian Lynagh's avatar
Ian Lynagh committed
135 136 137 138 139 140
        if flag(stage2)
            Include-Dirs: stage2
        else
            if flag(stage3)
                Include-Dirs: stage2

141 142 143 144
    Install-Includes: HsVersions.h, ghc_boot_platform.h

    c-sources:
        parser/cutils.c
145
        ghci/keepCAFsForGHCi.c
146
        cbits/genSym.c
147 148

    hs-source-dirs:
Edward Z. Yang's avatar
Edward Z. Yang committed
149
        backpack
150 151 152 153 154 155 156 157
        basicTypes
        cmm
        codeGen
        coreSyn
        deSugar
        ghci
        hsSyn
        iface
158
        llvmGen
159
        main
160
        nativeGen
161 162 163 164 165 166 167 168 169 170 171 172 173
        parser
        prelude
        profiling
        rename
        simplCore
        simplStg
        specialise
        stgSyn
        stranal
        typecheck
        types
        utils

174 175 176 177 178 179 180
    -- we use an explicit Prelude
    Default-Extensions:
        NoImplicitPrelude

    Other-Modules:
        GhcPrelude

181
    Exposed-Modules:
Moritz Angermann's avatar
Moritz Angermann committed
182
        Ar
Douglas Wilson's avatar
Douglas Wilson committed
183
        FileCleanup
Edward Z. Yang's avatar
Edward Z. Yang committed
184 185 186 187
        DriverBkp
        BkpSyn
        NameShape
        RnModIface
188
        Avail
189
        AsmUtils
190
        BasicTypes
cactus's avatar
cactus committed
191
        ConLike
192
        DataCon
cactus's avatar
cactus committed
193
        PatSyn
194
        Demand
195
        Debug
196
        Exception
Adam Gundry's avatar
Adam Gundry committed
197
        FieldLabel
198
        GhcMonad
199
        Hooks
200 201
        Id
        IdInfo
202
        Lexeme
203
        Literal
204 205
        Llvm
        Llvm.AbsSyn
206
        Llvm.MetaData
207 208 209 210 211 212 213 214
        Llvm.PpLlvm
        Llvm.Types
        LlvmCodeGen
        LlvmCodeGen.Base
        LlvmCodeGen.CodeGen
        LlvmCodeGen.Data
        LlvmCodeGen.Ppr
        LlvmCodeGen.Regs
215
        LlvmMangler
216 217 218 219 220 221 222
        MkId
        Module
        Name
        NameEnv
        NameSet
        OccName
        RdrName
223
        NameCache
224 225 226 227 228 229
        SrcLoc
        UniqSupply
        Unique
        Var
        VarEnv
        VarSet
Joachim Breitner's avatar
Joachim Breitner committed
230
        UnVarGraph
231 232 233
        BlockId
        CLabel
        Cmm
234
        CmmBuildInfoTables
Edward Z. Yang's avatar
Edward Z. Yang committed
235
        CmmPipeline
236
        CmmCallConv
237
        CmmCommonBlockElim
238
        CmmImplementSwitchPlans
239 240 241 242 243 244
        CmmContFlowOpt
        CmmExpr
        CmmInfo
        CmmLex
        CmmLint
        CmmLive
245
        CmmMachOp
246
        CmmMonad
247
        CmmSwitch
248
        CmmNode
249 250 251
        CmmOpt
        CmmParse
        CmmProcPoint
252
        CmmSink
253
        CmmType
254
        CmmUtils
Simon Marlow's avatar
Simon Marlow committed
255
        CmmLayoutStack
256
        EnumSet
257
        MkGraph
258
        PprBase
259 260
        PprC
        PprCmm
261 262
        PprCmmDecl
        PprCmmExpr
263
        Bitmap
264
        CodeGen.Platform
265
        CodeGen.Platform.ARM
266
        CodeGen.Platform.ARM64
267 268 269 270 271 272
        CodeGen.Platform.NoRegs
        CodeGen.Platform.PPC
        CodeGen.Platform.PPC_Darwin
        CodeGen.Platform.SPARC
        CodeGen.Platform.X86
        CodeGen.Platform.X86_64
273
        CgUtils
274 275 276 277 278 279 280 281 282
        StgCmm
        StgCmmBind
        StgCmmClosure
        StgCmmCon
        StgCmmEnv
        StgCmmExpr
        StgCmmForeign
        StgCmmHeap
        StgCmmHpc
nfrisby's avatar
nfrisby committed
283
        StgCmmArgRep
284 285 286 287 288 289
        StgCmmLayout
        StgCmmMonad
        StgCmmPrim
        StgCmmProf
        StgCmmTicky
        StgCmmUtils
290
        StgCmmExtCode
291
        SMRep
292
        CoreArity
293 294 295 296
        CoreFVs
        CoreLint
        CorePrep
        CoreSubst
297
        CoreOpt
298
        CoreSyn
Simon Peyton Jones's avatar
Simon Peyton Jones committed
299
        TrieMap
300 301 302
        CoreTidy
        CoreUnfold
        CoreUtils
303
        CoreMap
304
        CoreSeq
305
        CoreStats
306
        MkCore
307
        PprCore
308 309
        PmExpr
        TmOracle
310 311 312 313 314 315 316 317 318 319 320
        Check
        Coverage
        Desugar
        DsArrows
        DsBinds
        DsCCall
        DsExpr
        DsForeign
        DsGRHSs
        DsListComp
        DsMonad
321
        DsUsage
322
        DsUtils
323
        ExtractDocs
324 325 326 327 328 329 330 331 332
        Match
        MatchCon
        MatchLit
        HsBinds
        HsDecls
        HsDoc
        HsExpr
        HsImpExp
        HsLit
333
        PlaceHolder
334
        HsExtension
335
        HsInstances
336 337 338 339
        HsPat
        HsSyn
        HsTypes
        HsUtils
340
        HsDumpAst
341
        BinIface
342
        BinFingerprint
343 344 345 346
        BuildTyCl
        IfaceEnv
        IfaceSyn
        IfaceType
Ben Gamari's avatar
Ben Gamari committed
347
        ToIface
348 349 350
        LoadIface
        MkIface
        TcIface
351
        FlagChecker
352
        Annotations
353 354 355 356 357 358
        CmdLineParser
        CodeOutput
        Config
        Constants
        DriverMkDepend
        DriverPhases
359
        PipelineMonad
360 361 362 363 364
        DriverPipeline
        DynFlags
        ErrUtils
        Finder
        GHC
365
        GhcMake
366 367
        GhcPlugins
        DynamicLoading
368 369 370 371 372
        HeaderInfo
        HscMain
        HscStats
        HscTypes
        InteractiveEval
373
        InteractiveEvalTypes
374 375
        PackageConfig
        Packages
376
        PlatformConstants
Adam Gundry's avatar
Adam Gundry committed
377 378
        Plugins
        TcPluginM
379
        PprTyThing
Facundo Domínguez's avatar
Facundo Domínguez committed
380
        StaticPtrTable
381
        SysTools
382
        SysTools.BaseDir
383
        SysTools.Terminal
Tamar Christina's avatar
Tamar Christina committed
384 385 386 387
        SysTools.ExtraObj
        SysTools.Info
        SysTools.Process
        SysTools.Tasks
388
        Elf
389 390 391 392
        TidyPgm
        Ctype
        HaddockUtils
        Lexer
393
        OptCoercion
394 395
        Parser
        RdrHsSyn
Alan Zimmerman's avatar
Alan Zimmerman committed
396
        ApiAnnotation
397
        ForeignCall
398
        KnownUniques
399 400 401 402 403 404 405
        PrelInfo
        PrelNames
        PrelRules
        PrimOp
        TysPrim
        TysWiredIn
        CostCentre
406
        CostCentreState
407
        ProfInit
408 409 410 411 412 413 414
        RnBinds
        RnEnv
        RnExpr
        RnHsDoc
        RnNames
        RnPat
        RnSource
415
        RnSplice
416
        RnTypes
417 418 419
        RnFixity
        RnUtils
        RnUnbound
420
        CoreMonad
421 422 423 424 425 426 427 428 429 430 431 432 433 434
        CSE
        FloatIn
        FloatOut
        LiberateCase
        OccurAnal
        SAT
        SetLevels
        SimplCore
        SimplEnv
        SimplMonad
        SimplUtils
        Simplify
        SimplStg
        StgStats
435
        StgCse
436
        UnariseStg
437
        RepType
438 439 440 441 442 443
        Rules
        SpecConstr
        Specialise
        CoreToStg
        StgLint
        StgSyn
444
        CallArity
445
        DmdAnal
446
        Exitify
447 448 449
        WorkWrap
        WwLib
        FamInst
450
        ClsInst
451
        Inst
452
        TcAnnotations
453 454
        TcArrows
        TcBinds
455
        TcSigs
456 457 458
        TcClassDcl
        TcDefaults
        TcDeriv
Ryan Scott's avatar
Ryan Scott committed
459 460
        TcDerivInfer
        TcDerivUtils
461 462 463 464
        TcEnv
        TcExpr
        TcForeign
        TcGenDeriv
Ryan Scott's avatar
Ryan Scott committed
465
        TcGenFunctor
466
        TcGenGenerics
467 468 469 470
        TcHsSyn
        TcHsType
        TcInstDcls
        TcMType
471
        TcValidity
472 473
        TcMatches
        TcPat
cactus's avatar
cactus committed
474
        TcPatSyn
475
        TcRnDriver
Edward Z. Yang's avatar
Edward Z. Yang committed
476
        TcBackpack
477
        TcRnExports
478 479 480 481
        TcRnMonad
        TcRnTypes
        TcRules
        TcSimplify
482
        TcHoleErrors
483
        TcErrors
484 485
        TcTyClsDecls
        TcTyDecls
486
        TcTypeable
487
        TcType
488
        TcEvidence
489
        TcEvTerm
490
        TcUnify
491 492
        TcInteract
        TcCanonical
493
        TcFlatten
494
        TcSMonad
495
        TcTypeNats
496
        TcSplice
497 498
        Class
        Coercion
499 500
        DsMeta
        THNames
501 502 503 504
        FamInstEnv
        FunDeps
        InstEnv
        TyCon
505
        CoAxiom
506
        Kind
507
        Type
508
        TyCoRep
509 510 511
        Unify
        Bag
        Binary
512
        BooleanFormula
513 514 515 516 517 518
        BufWrite
        Digraph
        Encoding
        FastFunctions
        FastMutInt
        FastString
Adam Gundry's avatar
Adam Gundry committed
519
        FastStringEnv
520 521
        Fingerprint
        FiniteMap
522
        FV
523 524 525 526 527
        GraphBase
        GraphColor
        GraphOps
        GraphPpr
        IOEnv
528
        Json
529
        ListSetOps
530
        ListT
531 532 533 534
        Maybes
        MonadUtils
        OrdList
        Outputable
535
        Pair
536
        Panic
Rufflewind's avatar
Rufflewind committed
537
        PprColour
538 539
        Pretty
        State
540
        Stream
541
        StringBuffer
542
        UniqDFM
543 544
        UniqDSet
        UniqFM
Edward Z. Yang's avatar
Edward Z. Yang committed
545
        UniqMap
546 547
        UniqSet
        Util
548 549
        Hoopl.Block
        Hoopl.Collections
Simon Marlow's avatar
Simon Marlow committed
550
        Hoopl.Dataflow
551 552
        Hoopl.Graph
        Hoopl.Label
Simon Marlow's avatar
Simon Marlow committed
553 554 555
--        CgInfoTbls used in ghci/DebuggerUtils
--        CgHeapery  mkVirtHeapOffsets used in ghci

556
    Exposed-Modules:
557
            AsmCodeGen
558 559 560
            TargetReg
            NCGMonad
            Instruction
561
            Format
562 563 564 565
            Reg
            RegClass
            PIC
            Platform
tibbe's avatar
tibbe committed
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
Simon Marlow's avatar
Simon Marlow committed
582
            SPARC.AddrMode
583
            SPARC.Cond
584
            SPARC.Instr
Simon Marlow's avatar
Simon Marlow committed
585
            SPARC.Stack
586
            SPARC.ShortcutJump
587
            SPARC.Ppr
588
            SPARC.CodeGen
589 590 591 592 593
            SPARC.CodeGen.Amode
            SPARC.CodeGen.Base
            SPARC.CodeGen.CondCode
            SPARC.CodeGen.Gen32
            SPARC.CodeGen.Gen64
594
            SPARC.CodeGen.Sanity
595
            SPARC.CodeGen.Expand
596
            RegAlloc.Liveness
597 598 599 600 601 602 603 604
            RegAlloc.Graph.Main
            RegAlloc.Graph.Stats
            RegAlloc.Graph.ArchBase
            RegAlloc.Graph.ArchX86
            RegAlloc.Graph.Coalesce
            RegAlloc.Graph.Spill
            RegAlloc.Graph.SpillClean
            RegAlloc.Graph.SpillCost
605
            RegAlloc.Graph.TrivColorable
606 607 608 609 610 611 612 613
            RegAlloc.Linear.Main
            RegAlloc.Linear.JoinToTargets
            RegAlloc.Linear.State
            RegAlloc.Linear.Stats
            RegAlloc.Linear.FreeRegs
            RegAlloc.Linear.StackMap
            RegAlloc.Linear.Base
            RegAlloc.Linear.X86.FreeRegs
ian@well-typed.com's avatar
ian@well-typed.com committed
614
            RegAlloc.Linear.X86_64.FreeRegs
615 616
            RegAlloc.Linear.PPC.FreeRegs
            RegAlloc.Linear.SPARC.FreeRegs
Peter Wortmann's avatar
Peter Wortmann committed
617 618 619
            Dwarf
            Dwarf.Types
            Dwarf.Constants
620
            Convert
621
            ByteCodeTypes
622 623 624 625 626 627 628 629
            ByteCodeAsm
            ByteCodeGen
            ByteCodeInstr
            ByteCodeItbls
            ByteCodeLink
            Debugger
            Linker
            RtClosureInspect
630
            GHCi