master hovercats/oakiss / pkg / transmission / gen.lua
  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'