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
|
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/miniupnp',
'-idirafter pkg/openbsd/src/sys',
}
build('sed', '$outdir/miniupnp/miniupnpcstrings.h', '$srcdir/third-party/miniupnp/miniupnpcstrings.h.in', {
expr='-e s,OS/version,Linux, -e s,version,,',
})
lib('libminiupnp.a', [[
third-party/miniupnp/(
connecthostport.c
igd_desc_parse.c
minisoap.c
minissdpc.c
miniupnpc.c
miniwget.c
minixml.c
portlistingparse.c
receivedata.c
upnpcommands.c
upnpreplyparse.c
)
]], {'$outdir/miniupnp/miniupnpcstrings.h', 'pkg/openbsd/fetch'})
end)
sub('libutp.ninja', function()
set('cc', '$cxx')
set('cflags', {
'$cxxflags',
'-fno-exceptions',
'-fno-rtti',
'-ansi',
'-D POSIX',
'-I $srcdir/third-party/libutp',
})
lib('libutp.a', 'third-party/libutp/(utp.cpp utp_utils.cpp)')
end)
cflags{
'-D __TRANSMISSION__',
'-I $builddir/pkg/curl/include',
'-I $builddir/pkg/libevent/include',
'-I $builddir/pkg/libressl/include',
'-I $builddir/pkg/zlib/include',
'-I $dir',
'-I $srcdir',
'-I $srcdir/third-party',
'-I $srcdir/third-party/libb64',
'-I $srcdir/third-party/libnatpmp',
'-I $srcdir/third-party/libutp',
'-I pkg/libevent/src/include',
'-I include',
'-idirafter pkg/openbsd/src/sys',
'-include config.h',
}
pkg.deps = {
'pkg/curl/headers',
'pkg/libevent/headers',
'pkg/libressl/headers',
'pkg/openbsd/fetch',
'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
stats.c
torrent.c
torrent-ctor.c
torrent-magnet.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
crypto-utils-openssl.c
)
libb64.a libdht.a libminiupnp.a libnatpmp.a libutp.a
$builddir/pkg/(
curl/libcurl.a.d
libevent/libevent.a
libressl/libcrypto.a.d
zlib/libz.a
)
]])
lib('libb64.a', {'third-party/libb64/cdecode.c', 'third-party/libb64/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'}
exe('transmission-remote', {'daemon/remote.c', 'libtransmission.a.d'})
file('bin/transmission-remote', '755', '$outdir/transmission-remote')
man{'daemon/transmission-remote.1'}
for _, tool in ipairs{'create', 'edit', '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'
|