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
|
sub('libnatpmp.ninja', function()
cflags{'-D ENABLE_STRNATPMPERR'}
lib('libnatpmp.a', 'third-party/libnatpmp/(getgateway.c natpmp.c wingettimeofday.c)')
end)
sub('libminiupnp.ninja', function()
cflags{
'-D _GNU_SOURCE',
'-I $outdir/miniupnpc',
'-isystem $outdir/pkg/openbsd/include',
}
build('sed', '$outdir/miniupnpc/miniupnpcstrings.h', '$srcdir/third-party/miniupnpc/miniupnpcstrings.h.in', {
expr='-e s,OS/version,Linux, -e s,version,,',
})
lib('libminiupnp.a', [[
third-party/miniupnpc/(
connecthostport.c
igd_desc_parse.c
minisoap.c
minissdpc.c
miniupnpc.c
miniwget.c
minixml.c
portlistingparse.c
receivedata.c
upnpcommands.c
upnpdev.c
upnperrors.c
upnpreplyparse.c
)
]], {'$outdir/miniupnpc/miniupnpcstrings.h', 'pkg/openbsd/headers'})
end)
cflags{
'-D __TRANSMISSION__',
'-I $dir',
'-I $srcdir',
'-I $srcdir/third-party',
'-I $srcdir/third-party/libb64/include',
'-I $srcdir/third-party/libnatpmp',
'-isystem $builddir/pkg/bearssl/include',
'-isystem $builddir/pkg/curl/include',
'-isystem $builddir/pkg/libevent/include',
'-isystem $builddir/pkg/libutp/include',
'-isystem $builddir/pkg/zlib/include',
'-isystem $builddir/pkg/openbsd/include',
'-include config.h',
}
pkg.deps = {
'pkg/bearssl/headers',
'pkg/curl/headers',
'pkg/libevent/headers',
'pkg/libutp/headers',
'pkg/openbsd/headers',
'pkg/zlib/headers',
}
lib('libtransmission.a', [[
libtransmission/(
announcer.c
announcer-http.c
announcer-udp.c
bandwidth.c
bitfield.c
blocklist.c
cache.c
clients.c
completion.c
ConvertUTF.c
crypto.c
crypto-utils.c
crypto-utils-fallback.c
error.c
fdlimit.c
file.c
handshake.c
history.c
inout.c
list.c
log.c
magnet.c
makemeta.c
metainfo.c
natpmp.c
net.c
peer-io.c
peer-mgr.c
peer-msgs.c
platform.c
platform-quota.c
port-forwarding.c
ptrarray.c
quark.c
resume.c
rpcimpl.c
rpc-server.c
session.c
session-id.c
stats.c
torrent.c
torrent-ctor.c
torrent-magnet.c
tr-assert.c
tr-dht.c
tr-lpd.c
tr-udp.c
tr-utp.c
tr-getopt.c
trevent.c
upnp.c
utils.c
variant.c
variant-benc.c
variant-json.c
verify.c
watchdir.c
watchdir-generic.c
web.c
webseed.c
wildmat.c
watchdir-inotify.c
file-posix.c
subprocess-posix.c
crypto-utils-bearssl.c
)
libb64.a libdht.a libminiupnp.a libnatpmp.a
$builddir/pkg/(
bearssl/libbearssl.a
curl/libcurl.a.d
libevent/libevent.a
libutp/libutp.a
zlib/libz.a
)
]])
lib('libb64.a', {'third-party/libb64/src/cdecode.c', 'third-party/libb64/src/cencode.c'})
lib('libdht.a', {'third-party/dht/dht.c'})
exe('transmission-daemon', {
'daemon/daemon.c',
'daemon/daemon-posix.c',
'libtransmission.a.d',
})
file('bin/transmission-daemon', '755', '$outdir/transmission-daemon')
man{'daemon/transmission-daemon.1'}
for _, tool in ipairs{'create', 'edit', 'remote', 'show'} do
exe('transmission-'..tool, {'utils/'..tool..'.c', 'libtransmission.a.d'})
file('bin/transmission-'..tool, '755', '$outdir/transmission-'..tool)
man{'utils/transmission-'..tool..'.1'}
end
fetch 'curl'
|