summaryrefslogtreecommitdiff
path: root/ghc/ghc-bin.cabal.in
blob: 8a9178a183411ac7d9b141752a0c78d626a90abc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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
104
105
106
107
108
109
110
111
-- WARNING: ghc-bin.cabal is automatically generated from ghc-bin.cabal.in by
-- ./configure.  Make sure you are editing ghc-bin.cabal.in, not ghc-bin.cabal.

Name: ghc-bin
Version: @ProjectVersion@
Copyright: XXX
-- License: XXX
-- License-File: XXX
Author: XXX
Maintainer: glasgow-haskell-users@haskell.org
Homepage: http://www.haskell.org/ghc/
Synopsis: The Glorious Glasgow Haskell Compiler.
Description:
    This package contains the @ghc@ executable, the user facing front-end
    to the Glasgow Haskell Compiler.
Category: Development
Build-Type: Simple
Cabal-Version: >=1.10

Flag internal-interpreter
    Description: Build with internal interpreter support.
    Default: False
    Manual: True

Flag threaded
    Description: Link the ghc executable against the threaded RTS
    Default: True
    Manual: True

Flag eventlog
    Description: Link the ghc executable against the event-logging RTS
    Default: True
    Manual: True

Executable ghc
    Default-Language: Haskell2010

    Main-Is: Main.hs
    Build-Depends: base       >= 4   && < 5,
                   array      >= 0.1 && < 0.6,
                   bytestring >= 0.9 && < 0.12,
                   directory  >= 1   && < 1.4,
                   process    >= 1   && < 1.7,
                   filepath   >= 1   && < 1.5,
                   containers >= 0.5 && < 0.7,
                   transformers == 0.5.*,
                   ghc-boot      == @ProjectVersionMunged@,
                   ghc           == @ProjectVersionMunged@

    if os(windows)
        Build-Depends: Win32  >= 2.3 && < 2.13
    else
        Build-Depends: unix   >= 2.7 && < 2.9

    GHC-Options: -Wall
                 -Wnoncanonical-monad-instances
                 -Wnoncanonical-monoid-instances
                 -rtsopts=all
                 "-with-rtsopts=-K512M -H -I5 -T"

    if flag(internal-interpreter)
        -- NB: this is never built by the bootstrapping GHC+libraries
        Build-depends:
            deepseq        == 1.4.*,
            ghc-prim       >= 0.5.0 && < 0.9,
            ghci           == @ProjectVersionMunged@,
            haskeline      == 0.8.*,
            exceptions     == 0.10.*,
            time           >= 1.8 && < 1.13
        CPP-Options: -DHAVE_INTERNAL_INTERPRETER
        Other-Modules:
            GHCi.Leak
            GHCi.UI
            GHCi.UI.Info
            GHCi.UI.Monad
            GHCi.UI.Tags
            GHCi.Util
        Other-Extensions:
            FlexibleInstances
            LambdaCase
            MagicHash
            MultiWayIf
            OverloadedStrings
            RankNTypes
            RecordWildCards
            ScopedTypeVariables
            UnboxedTuples
            ViewPatterns

    -- The flag being True by default, this reflects the
    -- mk/config.mk.in logic for GhcThreaded (which ends up
    -- always being True as well). One can still opt out by
    -- disabling this flag.
    if flag(threaded)
      ghc-options: -threaded

    -- Same for GhcEventLoggingRts
    if flag(eventlog)
      ghc-options: -eventlog

    Other-Extensions:
        CPP
        NondecreasingIndentation
        TupleSections

    -- This should match the default-extensions used in 'ghc.cabal'. This way,
    -- GHCi can be used to load it all at once.
    Default-Extensions:
        NoImplicitPrelude
      , ScopedTypeVariables
      , BangPatterns