@@ -1,2 +1,55 @@ | |||||
SUBDIRS=@subdirs@ misc btpd cli | |||||
AM_CFLAGS=-std=c99 -Wall @WARNNPS@ | |||||
AM_CPPFLAGS=-I$(top_srcdir)/misc -I$(top_srcdir)/evloop @openssl_CPPFLAGS@ -D_GNU_SOURCE=1 -D_FILE_OFFSET_BITS=64 -D@EVLOOP_METHOD@ | |||||
AM_LDFLAGS=@openssl_LDFLAGS@ | |||||
bin_PROGRAMS=btpd/btpd cli/btcli cli/btinfo | |||||
noinst_LIBRARIES=misc/libmisc.a evloop/libevloop.a | |||||
EXTRA_DIST=COPYRIGHT CHANGES | EXTRA_DIST=COPYRIGHT CHANGES | ||||
# btpd | |||||
btpd_btpd_SOURCES=\ | |||||
btpd/active.c btpd/active.h btpd/addrinfo.c\ | |||||
btpd/btpd.c btpd/btpd.h\ | |||||
btpd/cli_if.c btpd/content.c btpd/content.h\ | |||||
btpd/download.c btpd/download_subr.c btpd/download.h\ | |||||
btpd/http_tr_if.c\ | |||||
btpd/main.c\ | |||||
btpd/nameconn.c btpd/net.c btpd/net.h btpd/net_types.h\ | |||||
btpd/net_buf.c btpd/net_buf.h\ | |||||
btpd/opts.c btpd/opts.h\ | |||||
btpd/peer.c btpd/peer.h\ | |||||
btpd/thread_cb.c btpd/tlib.c btpd/tlib.h btpd/torrent.c btpd/torrent.h\ | |||||
btpd/tracker_req.c btpd/tracker_req.h\ | |||||
btpd/upload.c btpd/upload.h\ | |||||
btpd/util.c | |||||
btpd_btpd_CFLAGS=-pthread $(AM_CFLAGS) | |||||
btpd_btpd_LDADD=misc/libmisc.a evloop/libevloop.a -lcrypto -lm @CLOCKLIB@ | |||||
# btinfo | |||||
cli_btinfo_SOURCES=cli/btinfo.c | |||||
cli_btinfo_LDADD=misc/libmisc.a -lcrypto -lm | |||||
# btcli | |||||
cli_btcli_SOURCES=cli/btcli.c cli/btcli.h cli/add.c cli/del.c cli/list.c cli/kill.c cli/start.c cli/stop.c cli/stat.c | |||||
cli_btcli_LDADD=misc/libmisc.a -lcrypto -lm | |||||
# libmisc | |||||
misc_libmisc_a_SOURCES=\ | |||||
misc/benc.c misc/benc.h\ | |||||
misc/btpd_if.c misc/btpd_if.h misc/ipcdefs.h\ | |||||
misc/metainfo.c misc/metainfo.h\ | |||||
misc/hashtable.c misc/hashtable.h\ | |||||
misc/http_client.c misc/http_client.h\ | |||||
misc/iobuf.c misc/iobuf.h\ | |||||
misc/queue.h\ | |||||
misc/stream.c misc/stream.h\ | |||||
misc/subr.c misc/subr.h | |||||
# evloop | |||||
EXTRA_evloop_libevloop_a_SOURCES=evloop/epoll.c evloop/kqueue.c evloop/poll.c | |||||
evloop_libevloop_a_SOURCES=\ | |||||
evloop/evloop.h\ | |||||
evloop/timeheap.c evloop/timeheap.h evloop/timer.c | |||||
evloop_libevloop_a_LIBADD=@EVLOOP_IMPL@ | |||||
evloop_libevloop_a_DEPENDENCIES=@EVLOOP_IMPL@ |
@@ -1,20 +0,0 @@ | |||||
bin_PROGRAMS=btpd | |||||
btpd_SOURCES=\ | |||||
active.c active.h addrinfo.c\ | |||||
btpd.c btpd.h\ | |||||
cli_if.c content.c content.h\ | |||||
download.c download_subr.c download.h\ | |||||
http_tr_if.c\ | |||||
main.c\ | |||||
nameconn.c net.c net.h net_types.h\ | |||||
net_buf.c net_buf.h\ | |||||
opts.c opts.h\ | |||||
peer.c peer.h\ | |||||
thread_cb.c tlib.c tlib.h torrent.c torrent.h\ | |||||
tracker_req.c tracker_req.h\ | |||||
upload.c upload.h\ | |||||
util.c | |||||
btpd_LDADD=../misc/libmisc.a ../libevent/libevent.a -lcrypto -lm | |||||
btpd_CPPFLAGS=-I$(top_srcdir)/misc -I$(top_srcdir)/libevent @openssl_CPPFLAGS@ | |||||
btpd_LDFLAGS=@openssl_LDFLAGS@ |
@@ -1,11 +0,0 @@ | |||||
bin_PROGRAMS=btinfo btcli | |||||
btinfo_SOURCES=btinfo.c | |||||
btinfo_LDADD=../misc/libmisc.a -lcrypto -lm | |||||
btinfo_CPPFLAGS=-I$(top_srcdir)/misc @openssl_CPPFLAGS@ | |||||
btinfo_LDFLAGS=@openssl_LDFLAGS@ | |||||
btcli_SOURCES=btcli.c btcli.h add.c del.c list.c kill.c start.c stop.c stat.c | |||||
btcli_LDADD=../misc/libmisc.a -lcrypto -lm | |||||
btcli_CPPFLAGS=-I$(top_srcdir)/misc @openssl_CPPFLAGS@ | |||||
btcli_LDFLAGS=@openssl_LDFLAGS@ |
@@ -1,48 +1,78 @@ | |||||
AC_INIT(btpd, 0.13, btpd@murmeldjur.se) | AC_INIT(btpd, 0.13, btpd@murmeldjur.se) | ||||
AM_INIT_AUTOMAKE([foreign]) | |||||
AM_INIT_AUTOMAKE([foreign subdir-objects]) | |||||
AC_CONFIG_FILES([Makefile btpd/Makefile misc/Makefile cli/Makefile]) | |||||
AC_CONFIG_FILES([Makefile]) | |||||
AC_PROG_CC | AC_PROG_CC | ||||
AC_PROG_CC_C_O | |||||
AC_PROG_RANLIB | AC_PROG_RANLIB | ||||
CFLAGS="$CFLAGS -std=c99" | |||||
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE=1 -D_FILE_OFFSET_BITS=64" | |||||
AC_ARG_WITH(openssl, | AC_ARG_WITH(openssl, | ||||
[ --with-openssl=dir use openssl installed in dir], | [ --with-openssl=dir use openssl installed in dir], | ||||
[ | |||||
AC_SUBST(openssl_LDFLAGS,["-L${withval}/lib -Wl,-rpath=${withval}/lib"]) | |||||
AC_SUBST(openssl_CPPFLAGS,"-I${withval}/include") | |||||
], | |||||
[]) | |||||
AC_ARG_WITH(warn, | |||||
[ --with-warn=level select warning preset (no,all,allerr)], | |||||
[ | |||||
case $withval in | |||||
no) | |||||
;; | |||||
all) | |||||
CFLAGS="$CFLAGS -Wall -Wno-pointer-sign" | |||||
;; | |||||
allerr) | |||||
CFLAGS="$CFLAGS -Wall -Wno-pointer-sign -Werror" | |||||
;; | |||||
*) | |||||
echo "Warning preset \"$withval\" not recognized. See --help." | |||||
exit 1 | |||||
;; | |||||
esac | |||||
], | |||||
[]) | |||||
AC_SUBST(openssl_LDFLAGS,["-L${withval}/lib -Wl,-rpath=${withval}/lib"]) | |||||
AC_SUBST(openssl_CPPFLAGS,"-I${withval}/include")) | |||||
AC_ARG_WITH(evloop-method, | |||||
[ --with-evloop-method select evloop method (epoll,poll,kqueue)], | |||||
evloop_methods=$withval, | |||||
evloop_methods="epoll kqueue poll") | |||||
AC_SEARCH_LIBS(clock_gettime, rt, | |||||
AC_SUBST(CLOCKLIB, $LIBS) | |||||
LIBS="" | |||||
, | |||||
echo btpd needs clock_gettime. | |||||
exit 1) | |||||
echo -n "checking whether compiler accepts -Wno-pointer-sign... " | |||||
old_CFLAGS=$CFLAGS | |||||
CFLAGS="-Wno-pointer-sign" | |||||
AC_COMPILE_IFELSE(int main(void) { return 0; }, | |||||
AC_SUBST(WARNNPS,"-Wno-pointer-sign") | |||||
echo yes | |||||
, | |||||
echo no) | |||||
CFLAGS=$old_CFLAGS | |||||
old_LDFLAGS="$LDFLAGS" | old_LDFLAGS="$LDFLAGS" | ||||
LDFLAGS="$LDFLAGS $openssl_LDFLAGS" | LDFLAGS="$LDFLAGS $openssl_LDFLAGS" | ||||
AC_CHECK_LIB(crypto, SHA1_Final, :, echo Must have openssl; exit 1) | |||||
AC_CHECK_LIB(crypto, SHA1_Final,, echo "btpd needs openssl's libraries and headers."; exit 1) | |||||
LDFLAGS=$old_LDFLAGS | LDFLAGS=$old_LDFLAGS | ||||
LIBS="" | |||||
AC_CONFIG_SUBDIRS([libevent]) | |||||
for m in $evloop_methods; do | |||||
case $m in | |||||
epoll) | |||||
AC_CHECK_FUNC(epoll_wait,[ | |||||
AC_SUBST(EVLOOP_IMPL,"evloop/epoll.${OBJEXT}") | |||||
AC_SUBST(EVLOOP_METHOD,EVLOOP_EPOLL) | |||||
break],) | |||||
;; | |||||
kqueue) | |||||
AC_CHECK_FUNC(kqueue,[ | |||||
AC_SUBST(EVLOOP_IMPL,"evloop/kqueue.${OBJEXT}") | |||||
AC_SUBST(EVLOOP_METHOD,EVLOOP_KQUEUE) | |||||
break],) | |||||
;; | |||||
poll) | |||||
AC_CHECK_FUNC(poll,[ | |||||
AC_SUBST(EVLOOP_IMPL,"evloop/poll.${OBJEXT}") | |||||
AC_SUBST(EVLOOP_METHOD,EVLOOP_POLL) | |||||
break],) | |||||
break | |||||
;; | |||||
*) | |||||
echo "$m is not a valid evloop method. See --help." | |||||
exit 1 | |||||
;; | |||||
esac | |||||
done | |||||
if test x$EVLOOP_METHOD == x; then | |||||
echo "no suitable evloop method found." | |||||
exit 1 | |||||
else | |||||
echo selected evloop method $EVLOOP_METHOD. | |||||
fi | |||||
AC_OUTPUT | AC_OUTPUT |
@@ -1,8 +0,0 @@ | |||||
noinst_LIBRARIES=libevloop.a | |||||
EXTRA_libevloop_a_SOURCES=epoll.c poll.c | |||||
libevloop_a_SOURCES=\ | |||||
evloop.h\ | |||||
timeheap.c timeheap.h timer.c | |||||
CFLAGS=@CFLAGS@ -D@EVLOOP_METHOD@ -I$(top_srcdir)/misc | |||||
libevloop_a_LIBADD=@EVLOOP_IMPL@ | |||||
libevloop_a_DEPENDENCIES=@EVLOOP_IMPL@ |
@@ -1,12 +0,0 @@ | |||||
noinst_LIBRARIES=libmisc.a | |||||
libmisc_a_SOURCES=\ | |||||
benc.c benc.h\ | |||||
btpd_if.c btpd_if.h ipcdefs.h\ | |||||
metainfo.c metainfo.h\ | |||||
hashtable.c hashtable.h\ | |||||
http_client.c http_client.h\ | |||||
iobuf.c iobuf.h\ | |||||
queue.h\ | |||||
stream.c stream.h\ | |||||
subr.c subr.h | |||||
libmisc_a_CPPFLAGS=-I$(top_srcdir)/libevent @openssl_CPPFLAGS@ |