1sub('libnatpmp.ninja', function()
2 cflags{'-D ENABLE_STRNATPMPERR'}
3 lib('libnatpmp.a', 'third-party/libnatpmp/(getgateway.c natpmp.c wingettimeofday.c)')
4end)
5sub('libminiupnp.ninja', function()
6 cflags{
7 '-D _GNU_SOURCE',
8 '-I $outdir/miniupnpc',
9 '-isystem $outdir/pkg/openbsd/include',
10 }
11
12 build('sed', '$outdir/miniupnpc/miniupnpcstrings.h', '$srcdir/third-party/miniupnpc/miniupnpcstrings.h.in', {
13 expr='-e s,OS/version,Linux, -e s,version,,',
14 })
15
16 lib('libminiupnp.a', [[
17 third-party/miniupnpc/(
18 connecthostport.c
19 igd_desc_parse.c
20 minisoap.c
21 minissdpc.c
22 miniupnpc.c
23 miniwget.c
24 minixml.c
25 portlistingparse.c
26 receivedata.c
27 upnpcommands.c
28 upnpdev.c
29 upnperrors.c
30 upnpreplyparse.c
31 )
32 ]], {'$outdir/miniupnpc/miniupnpcstrings.h', 'pkg/openbsd/headers'})
33end)
34
35cflags{
36 '-D __TRANSMISSION__',
37 '-I $dir',
38 '-I $srcdir',
39 '-isystem $builddir/pkg/bearssl/include',
40 '-isystem $builddir/pkg/curl/include',
41 '-isystem $builddir/pkg/libevent/include',
42 '-isystem $builddir/pkg/libutp/include',
43 '-isystem $builddir/pkg/zlib/include',
44 '-isystem $builddir/pkg/openbsd/include',
45 '-isystem $srcdir/third-party',
46 '-isystem $srcdir/third-party/libb64/include',
47 '-isystem $srcdir/third-party/libnatpmp',
48 '-include config.h',
49}
50
51pkg.deps = {
52 'pkg/bearssl/headers',
53 'pkg/curl/headers',
54 'pkg/libevent/headers',
55 'pkg/libutp/headers',
56 'pkg/openbsd/headers',
57 'pkg/zlib/headers',
58}
59
60lib('libtransmission.a', [[
61 libtransmission/(
62 announcer.c
63 announcer-http.c
64 announcer-udp.c
65 bandwidth.c
66 bitfield.c
67 blocklist.c
68 cache.c
69 clients.c
70 completion.c
71 ConvertUTF.c
72 crypto.c
73 crypto-utils.c
74 crypto-utils-fallback.c
75 error.c
76 fdlimit.c
77 file.c
78 handshake.c
79 history.c
80 inout.c
81 list.c
82 log.c
83 magnet.c
84 makemeta.c
85 metainfo.c
86 natpmp.c
87 net.c
88 peer-io.c
89 peer-mgr.c
90 peer-msgs.c
91 platform.c
92 platform-quota.c
93 port-forwarding.c
94 ptrarray.c
95 quark.c
96 resume.c
97 rpcimpl.c
98 rpc-server.c
99 session.c
100 session-id.c
101 stats.c
102 torrent.c
103 torrent-ctor.c
104 torrent-magnet.c
105 tr-assert.c
106 tr-dht.c
107 tr-lpd.c
108 tr-udp.c
109 tr-utp.c
110 tr-getopt.c
111 trevent.c
112 upnp.c
113 utils.c
114 variant.c
115 variant-benc.c
116 variant-json.c
117 verify.c
118 watchdir.c
119 watchdir-generic.c
120 web.c
121 webseed.c
122 wildmat.c
123
124 watchdir-inotify.c
125 file-posix.c
126 subprocess-posix.c
127 crypto-utils-bearssl.c
128 )
129 libb64.a libdht.a libminiupnp.a libnatpmp.a
130 $builddir/pkg/(
131 bearssl/libbearssl.a
132 curl/libcurl.a.d
133 libevent/libevent.a
134 libutp/libutp.a
135 zlib/libz.a
136 )
137]])
138
139lib('libb64.a', {'third-party/libb64/src/cdecode.c', 'third-party/libb64/src/cencode.c'})
140lib('libdht.a', {'third-party/dht/dht.c'})
141
142exe('transmission-daemon', {
143 'daemon/daemon.c',
144 'daemon/daemon-posix.c',
145 'libtransmission.a.d',
146})
147file('bin/transmission-daemon', '755', '$outdir/transmission-daemon')
148man{'daemon/transmission-daemon.1'}
149
150for _, tool in ipairs{'create', 'edit', 'remote', 'show'} do
151 exe('transmission-'..tool, {'utils/'..tool..'.c', 'libtransmission.a.d'})
152 file('bin/transmission-'..tool, '755', '$outdir/transmission-'..tool)
153 man{'utils/transmission-'..tool..'.1'}
154end
155
156fetch 'curl'