ghc.cabal.in 12.4 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: @ProjectVersion@
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 43

Library
44
    Default-Language: Haskell2010
45 46
    Exposed: False

Ian Lynagh's avatar
Ian Lynagh committed
47
    Build-Depends: base       >= 4   && < 5,
pcapriotti's avatar
pcapriotti committed
48
                   directory  >= 1   && < 1.3,
49
                   process    >= 1   && < 1.5,
Ian Lynagh's avatar
Ian Lynagh committed
50
                   bytestring >= 0.9 && < 0.11,
51
                   binary     == 0.8.*,
52
                   time                 < 1.6,
Joachim Breitner's avatar
Joachim Breitner committed
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
Ian Lynagh's avatar
Ian Lynagh committed
61

62
    if os(windows)
63 64 65 66
        Build-Depends: Win32
    else
        Build-Depends: unix

67 68 69
    if flag(ghci)
        Build-Depends: ghci

70
    GHC-Options: -Wall -fno-warn-name-shadowing
71 72 73

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

76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
    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
104 105 106

    Include-Dirs: . parser utils

107
    if impl( ghc >= 7.9 )
108
        -- We need to set the unit id to ghc (without a version number)
109 110 111
        -- as it's magic.  But we can't set it for old versions of GHC (e.g.
        -- when bootstrapping) because those versions of GHC don't understand
        -- that GHC is wired-in.
112
        GHC-Options: -this-package-key ghc
113

114 115 116
    if flag(stage1)
        Include-Dirs: stage1
    else
Ian Lynagh's avatar
Ian Lynagh committed
117 118 119 120 121 122
        if flag(stage2)
            Include-Dirs: stage2
        else
            if flag(stage3)
                Include-Dirs: stage2

123 124 125 126
    Install-Includes: HsVersions.h, ghc_boot_platform.h

    c-sources:
        parser/cutils.c
127
        ghci/keepCAFsForGHCi.c
128
        cbits/genSym.c
129 130

    hs-source-dirs:
131
        backpack
132 133 134 135 136 137 138 139
        basicTypes
        cmm
        codeGen
        coreSyn
        deSugar
        ghci
        hsSyn
        iface
140
        llvmGen
141
        main
142
        nativeGen
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
        parser
        prelude
        profiling
        rename
        simplCore
        simplStg
        specialise
        stgSyn
        stranal
        typecheck
        types
        utils
        vectorise

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

515
    Exposed-Modules:
516
            AsmCodeGen
517 518 519
            TargetReg
            NCGMonad
            Instruction
520
            Format
521 522 523 524
            Reg
            RegClass
            PIC
            Platform
tibbe's avatar
tibbe committed
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
Simon Marlow's avatar
Simon Marlow committed
541
            SPARC.AddrMode
542
            SPARC.Cond
543
            SPARC.Instr
Simon Marlow's avatar
Simon Marlow committed
544
            SPARC.Stack
545
            SPARC.ShortcutJump
546
            SPARC.Ppr
547
            SPARC.CodeGen
548 549 550 551 552
            SPARC.CodeGen.Amode
            SPARC.CodeGen.Base
            SPARC.CodeGen.CondCode
            SPARC.CodeGen.Gen32
            SPARC.CodeGen.Gen64
553
            SPARC.CodeGen.Sanity
554
            SPARC.CodeGen.Expand
555
            RegAlloc.Liveness
556 557 558 559 560 561 562 563
            RegAlloc.Graph.Main
            RegAlloc.Graph.Stats
            RegAlloc.Graph.ArchBase
            RegAlloc.Graph.ArchX86
            RegAlloc.Graph.Coalesce
            RegAlloc.Graph.Spill
            RegAlloc.Graph.SpillClean
            RegAlloc.Graph.SpillCost
564
            RegAlloc.Graph.TrivColorable
565 566 567 568 569 570 571 572
            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
573
            RegAlloc.Linear.X86_64.FreeRegs
574 575
            RegAlloc.Linear.PPC.FreeRegs
            RegAlloc.Linear.SPARC.FreeRegs
Peter Wortmann's avatar
Peter Wortmann committed
576 577 578
            Dwarf
            Dwarf.Types
            Dwarf.Constants
579

580 581 582
    if flag(ghci)
        Exposed-Modules:
            Convert
583
            ByteCodeTypes
584 585 586 587 588 589 590 591 592
            ByteCodeAsm
            ByteCodeGen
            ByteCodeInstr
            ByteCodeItbls
            ByteCodeLink
            Debugger
            LibFFI
            Linker
            RtClosureInspect
593
            DebuggerUtils
594
            GHCi