diff --git a/.gitignore b/.gitignore index 028c6b7..7edc5e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,19 +1,6 @@ -# http://www.gnu.org/software/automake -Makefile.in - -# http://www.gnu.org/software/autoconf -/autom4te.cache -/aclocal.m4 -/compile -/configure -/depcomp -/install-sh -/missing - # Dependency files .deps # Object files and libraries *.o *.a - diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a034a45 --- /dev/null +++ b/Makefile @@ -0,0 +1,87 @@ +# btpd - BitTorrent Protocol Daemon +# See LICENSE file for copyright and license details. + +BTPD_SRC = ${wildcard btpd/*.c} +BTPD_DEPS = ${wildcard btpd/*.h} +BTPD_OBJ = ${BTPD_SRC:.c=.o} + +BTCLI_SRC = ${wildcard cli/*.c} +BTCLI_DEPS = ${wildcard cli/*.h} +BTCLI_OBJ = ${BTCLI_SRC:.c=.o} + +BTINFO_SRC = ${wildcard info/*.c} +BTINFO_DEPS = ${wildcard info/*.h} +BTINFO_OBJ = ${BTINFO_SRC:.c=.o} + +MISC_SRC = ${wildcard misc/*.c} +MISC_DEPS = ${wildcard misc/*.h} +MISC_OBJ = ${MISC_SRC:.c=.o} + +EVLOOP_SRC = ${wildcard evloop/*.c} +EVLOOP_DEPS = ${wildcard evloop/*.h} +EVLOOP_OBJ = ${EVLOOP_SRC:.c=.o} + +include config.mk + +all: options btpd btinfo btcli + +options: + @echo btpd build options: + @echo "CFLAGS = ${CFLAGS}" + @echo "LDFLAGS = ${LDFLAGS}" + @echo "CC = ${CC}" + +.c.o: + ${CC} -c ${DEFS} ${CPPFLAGS} ${CFLAGS} $< -o $@ + +${%_OBJ}: ${%_DEPS} + +libmisc.a: ${MISC_OBJ} + ar rcs misc/$@ ${MISC_OBJ} + +libevloop.a: ${EVLOOP_OBJ} + ar rcs evloop/$@ ${EVLOOP_OBJ} + +btpd: ${BTPD_OBJ} libmisc.a libevloop.a + ${CC} ${CFLAGS} -o btpd/$@ ${BTPD_OBJ} misc/libmisc.a evloop/libevloop.a ${LDFLAGS} + +btinfo: ${BTINFO_OBJ} libmisc.a + ${CC} ${CFLAGS} -o info/$@ ${BTINFO_OBJ} misc/libmisc.a ${LDFLAGS} + +btcli: ${BTCLI_OBJ} libmisc.a + ${CC} ${CFLAGS} -o cli/$@ ${BTCLI_OBJ} misc/libmisc.a ${LDFLAGS} + +clean: + rm -f btpd/btpd cli/btcli info/btinfo\ + **/*.o **/*.a\ + btpd-${VERSION}.tar.gz + +dist: clean + mkdir -p btpd-${VERSION} + cp -R COPYRIGHT Makefile README CHANGES configure config.mk btpd cli doc evloop info misc\ + btpd-${VERSION} + tar -cf btpd-${VERSION}.tar btpd-${VERSION} + gzip btpd-${VERSION}.tar + rm -rf btpd-${VERSION} + +install: all + mkdir -p ${DESTDIR}${PREFIX}/bin + cp -f btpd/btpd cli/btcli info/btinfo ${DESTDIR}${PREFIX}/bin + chmod 755 ${DESTDIR}${PREFIX}/bin/btpd + chmod 755 ${DESTDIR}${PREFIX}/bin/btcli + chmod 755 ${DESTDIR}${PREFIX}/bin/btinfo + mkdir -p ${DESTDIR}${MANPREFIX}/man1 + cp -f doc/*.1 ${DESTDIR}${MANPREFIX}/man1 + chmod 644 ${DESTDIR}${MANPREFIX}/man1/btpd.1 + chmod 644 ${DESTDIR}${MANPREFIX}/man1/btcli.1 + chmod 644 ${DESTDIR}${MANPREFIX}/man1/btinfo.1 + +uninstall: + rm -f ${DESTDIR}${PREFIX}/bin/btpd\ + ${DESTDIR}${PREFIX}/bin/btcli\ + ${DESTDIR}${PREFIX}/bin/btinfo\ + ${DESTDIR}${MANPREFIX}/man1/btpd.1\ + ${DESTDIR}${MANPREFIX}/man1/btcli.1\ + ${DESTDIR}${MANPREFIX}/man1/btinfo.1 + +.PHONY: all options clean dist install uninstall diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index b74a7e3..0000000 --- a/Makefile.am +++ /dev/null @@ -1,57 +0,0 @@ -AM_CFLAGS=-std=c99 -Wall @WARNNPS@ -AM_CPPFLAGS=-D_FILE_OFFSET_BITS=64 -D@EVLOOP_METHOD@ -I$(top_srcdir)/misc -I$(top_srcdir)/evloop @openssl_CPPFLAGS@ -AM_LDFLAGS=@openssl_LDFLAGS@ - -bin_PROGRAMS=btpd/btpd cli/btcli cli/btinfo -noinst_LIBRARIES=misc/libmisc.a evloop/libevloop.a -dist_man1_MANS=doc/btcli.1 doc/btinfo.1 doc/btpd.1 - -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=@TD_CFLAGS@ $(AM_CFLAGS) -btpd_btpd_LDADD=@TD_LIBS@ misc/libmisc.a evloop/libevloop.a -lcrypto -lm @CLOCKLIB@ @INETLIBS@ - -# 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/rate.c cli/kill.c cli/start.c cli/stop.c cli/stat.c -cli_btcli_LDADD=misc/libmisc.a -lcrypto -lm @INETLIBS@ - -# 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\ - misc/utils.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@ diff --git a/config.mk b/config.mk new file mode 100644 index 0000000..3bb1968 --- /dev/null +++ b/config.mk @@ -0,0 +1,26 @@ +# btpd version +NAME = btpd +VERSION = 0.16 + +# paths +PREFIX = /usr +MANPREFIX = ${PREFIX}/share/man + +MISC = ./misc +EVLOOP = ./evloop + +# includes and libs +INCS = -I${MISC} -I${EVLOOP} +LIBS = -lcrypto -lm + +# flags +CPPFLAGS = ${INCS} -DHAVE_CLOCK_MONOTONIC=1 -DEVLOOP_NONE +CFLAGS = -march=native -pipe -O3 -fno-math-errno +LDFLAGS = ${LIBS} +DEFS = -DPACKAGE_NAME=\"${NAME}\" -DPACKAGE_VERSION=\"${VERSION}\" + +# compiler +CC = gcc + +# excluded +EVLOOP_SRC := ${filter-out evloop/poll.c evloop/epoll.c evloop/kqueue.c, ${EVLOOP_SRC}} diff --git a/configure b/configure new file mode 100755 index 0000000..aaba04d --- /dev/null +++ b/configure @@ -0,0 +1,43 @@ +#!/bin/sh + +evloop=POLL + +for arg in "$@"; do + case "$arg" in + --with-evloop-method=*) + evloop=`echo $arg | sed 's/--with-evloop-method=//'` + ;; + + --help|-h|*) + echo 'usage: ./configure [options]' + echo 'options:' + echo ' --with-evloop-method=