summaryrefslogtreecommitdiff
path: root/network.cabal
blob: 3c2145e261864bd2a8afb3680814132136d0078e (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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
cabal-version:      1.18
name:               network
version:            3.1.4.0
x-revision:         1
license:            BSD3
license-file:       LICENSE
maintainer:         Kazu Yamamoto, Evan Borden

tested-with:
    GHC == 9.6.1
    GHC == 9.4.4
    GHC == 9.2.7
    GHC == 9.0.2
    GHC == 8.10.7
    GHC == 8.8.4
    GHC == 8.6.5
    GHC == 8.4.4
    GHC == 8.2.2
    GHC == 8.0.2

homepage:           https://github.com/haskell/network
bug-reports:        https://github.com/haskell/network/issues
synopsis:           Low-level networking interface
description:
    This package provides a low-level networking interface.
    .
    === High-Level Packages
    Other packages provide higher level interfaces:
    .
    * connection
    * hookup
    * network-simple
    .
    === Extended Packages
    @network@ seeks to provide a cross-platform core for networking. As such some
    APIs live in extended libraries. Packages in the @network@ ecosystem are
    often prefixed with @network-@.
    .
    ==== @network-bsd@
    In @network-3.0.0.0@ the @Network.BSD@ module was split off into its own
    package, @network-bsd-3.0.0.0@.
    .
    ==== @network-uri@
    In @network-2.6@ the @Network.URI@ module was split off into its own package,
    @network-uri-2.6@. If you're using the @Network.URI@ module you can
    automatically get it from the right package by adding this to your @.cabal@
    file:
    .
    > library
    >   build-depends: network-uri-flag

category:           Network
build-type:         Configure

extra-doc-files:
    README.md
    CHANGELOG.md

extra-source-files:
    examples/*.hs
    tests/*.hs
    config.guess
    config.sub
    install-sh
    configure.ac
    configure
    include/HsNetworkConfig.h.in
    include/HsNet.h
    include/HsNetDef.h
    include/afunix_compat.h
    cbits/asyncAccept.c
    cbits/initWinSock.c
    cbits/winSockErr.c
    cbits/cmsg.c

extra-tmp-files:
    config.log
    config.status
    autom4te.cache
    network.buildinfo
    include/HsNetworkConfig.h

source-repository head
    type:     git
    location: https://github.com/haskell/network.git

flag devel
    description: using tests for developers
    default:     False

library
    exposed-modules:
        Network.Socket
        Network.Socket.Address
        Network.Socket.ByteString
        Network.Socket.ByteString.Lazy
        Network.Socket.Internal

    build-tools:      hsc2hs >=0
    c-sources:
        cbits/HsNet.c
        cbits/cmsg.c

    other-modules:
        Network.Socket.Buffer
        Network.Socket.ByteString.IO
        Network.Socket.ByteString.Internal
        Network.Socket.Cbits
        Network.Socket.Fcntl
        Network.Socket.Flag
        Network.Socket.Handle
        Network.Socket.If
        Network.Socket.Imports
        Network.Socket.Info
        Network.Socket.Name
        Network.Socket.Options
        Network.Socket.ReadShow
        Network.Socket.Shutdown
        Network.Socket.SockAddr
        Network.Socket.Syscall
        Network.Socket.Types
        Network.Socket.Unix

    default-language: Haskell2010
    include-dirs:     include
    includes:         HsNet.h HsNetDef.h alignment.h win32defs.h
    install-includes: HsNet.h HsNetDef.h alignment.h win32defs.h
    if os(windows)
        includes:         afunix_compat.h
        install-includes: afunix_compat.h

    ghc-options:      -Wall -fwarn-tabs
    build-depends:
        base >=4.9 && <5,
        bytestring >=0.10 && <0.13,
        deepseq,
        directory

    if !os(windows)
        other-modules:
            Network.Socket.ByteString.Lazy.Posix
            Network.Socket.Posix.Cmsg
            Network.Socket.Posix.CmsgHdr
            Network.Socket.Posix.IOVec
            Network.Socket.Posix.MsgHdr

    if os(solaris)
        cpp-options:     -D__EXTENSIONS__ -D_XOPEN_SOURCE=500
        cc-options:      -D__EXTENSIONS__ -D_XOPEN_SOURCE=500
        extra-libraries:
            nsl
            socket

    if os(windows)
        c-sources:
            cbits/initWinSock.c
            cbits/winSockErr.c
            cbits/asyncAccept.c

        other-modules:
            Network.Socket.ByteString.Lazy.Windows
            Network.Socket.Win32.Cmsg
            Network.Socket.Win32.CmsgHdr
            Network.Socket.Win32.WSABuf
            Network.Socket.Win32.MsgHdr

        extra-libraries:
            ws2_32
            iphlpapi
            mswsock

        if impl(ghc >=7.10)
            cpp-options: -D_WIN32_WINNT=0x0600
            cc-options:  -D_WIN32_WINNT=0x0600

        build-depends:
            temporary

test-suite spec
    type:             exitcode-stdio-1.0
    main-is:          Spec.hs
    build-tools:      hspec-discover >=2.6
    hs-source-dirs:   tests
    other-modules:
        Network.Test.Common
        Network.SocketSpec
        Network.Socket.ByteStringSpec
        Network.Socket.ByteString.LazySpec

    default-language: Haskell2010
    ghc-options:      -Wall -threaded
    build-depends:
        base >=4.9 && <5,
        bytestring,
        directory,
        HUnit,
        network,
        temporary,
        hspec >=2.6,
        QuickCheck

    if flag(devel)
        cpp-options: -DDEVELOPMENT