1AC_INIT(libtorrent, 0.13.8, sundell.software@gmail.com)
2
3LT_INIT([disable-static])
4
5dnl Find a better way to do this
6AC_DEFINE(PEER_NAME, "-lt0D80-", Identifier that is part of the default peer id)
7AC_DEFINE(PEER_VERSION, "lt\x0D\x80", 4 byte client and version identifier for DHT)
8
9LIBTORRENT_CURRENT=21
10LIBTORRENT_REVISION=0
11LIBTORRENT_AGE=0
12
13LIBTORRENT_INTERFACE_VERSION_INFO=$LIBTORRENT_CURRENT:$LIBTORRENT_REVISION:$LIBTORRENT_AGE
14LIBTORRENT_INTERFACE_VERSION_NO=$LIBTORRENT_CURRENT.$LIBTORRENT_AGE.$LIBTORRENT_REVISION
15
16AC_SUBST(LIBTORRENT_CURRENT)
17AC_SUBST(LIBTORRENT_INTERFACE_VERSION_INFO)
18AC_SUBST(LIBTORRENT_INTERFACE_VERSION_NO)
19
20AM_INIT_AUTOMAKE
21AC_CONFIG_HEADERS(config.h)
22
23AC_PROG_CXX
24
25AC_C_BIGENDIAN(
26    AC_DEFINE(IS_BIG_ENDIAN, 1, Big endian),
27    AC_DEFINE(IS_LITTLE_ENDIAN, 1, Little endian),
28    AC_MSG_ERROR([Could not determine endianness])
29)
30
31RAK_CHECK_CFLAGS
32RAK_CHECK_CXXFLAGS
33RAK_ENABLE_DEBUG
34RAK_ENABLE_EXTRA_DEBUG
35RAK_ENABLE_WERROR
36
37RAK_CHECK_CXX11
38RAK_CHECK_TR1_LIB
39
40AC_SYS_LARGEFILE
41
42TORRENT_ENABLE_ALIGNED
43TORRENT_ENABLE_INTERRUPT_SOCKET
44
45TORRENT_ENABLE_ARCH
46TORRENT_WITH_SYSROOT
47
48dnl TORRENT_WITH_XFS
49TORRENT_WITHOUT_KQUEUE
50TORRENT_WITHOUT_EPOLL
51TORRENT_CHECK_FALLOCATE
52TORRENT_WITH_POSIX_FALLOCATE
53TORRENT_WITH_ADDRESS_SPACE
54
55TORRENT_WITHOUT_STATVFS
56TORRENT_WITHOUT_STATFS
57TORRENT_WITH_INOTIFY
58
59CC_ATTRIBUTE_VISIBILITY
60
61AX_PTHREAD
62AX_CHECK_ZLIB
63
64PKG_CHECK_MODULES([CPPUNIT], [cppunit],, [no_cppunit="yes"])
65
66CFLAGS="$PTHREAD_CFLAGS $CPPUNIT_CFLAGS $CFLAGS"
67CXXFLAGS="$PTHREAD_CFLAGS $CPPUNIT_CFLAGS $CXXFLAGS"
68LIBS="$PTHREAD_LIBS $CPPUNIT_LIBS $LIBS"
69
70AC_ARG_ENABLE(openssl,
71  [  --disable-openssl       Don't use OpenSSL's SHA1 implementation.],
72  [
73    if test "$enableval" = "yes"; then
74dnl move to scripts.
75      PKG_CHECK_MODULES(OPENSSL, libcrypto,
76        CXXFLAGS="$CXXFLAGS $OPENSSL_CFLAGS";
77        LIBS="$LIBS $OPENSSL_LIBS")
78
79      AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
80      AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
81      AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
82
83    else
84      AC_DEFINE(USE_NSS_SHA, 1, Using Mozilla's SHA1 implementation.)
85    fi
86  ],[
87    PKG_CHECK_MODULES(OPENSSL, libcrypto,
88      CXXFLAGS="$CXXFLAGS $OPENSSL_CFLAGS";
89      LIBS="$LIBS $OPENSSL_LIBS")
90
91    AC_DEFINE(USE_OPENSSL, 1, Using OpenSSL.)
92    AC_DEFINE(USE_OPENSSL_SHA, 1, Using OpenSSL's SHA1 implementation.)
93    AC_CHECK_LIB([crypto], [DH_set0_pqg], [AC_DEFINE(USE_OPENSSL_1_1, 1, Using OpenSSL 1.1.)])
94  ]
95)
96
97AC_ARG_ENABLE(cyrus-rc4,
98  [  --enable-cyrus-rc4=PFX  Use Cyrus RC4 implementation.],
99  [
100    CXXFLAGS="$CXXFLAGS -I${enableval}/include";
101    LIBS="$LIBS -lrc4 -L${enableval}/lib"
102    AC_DEFINE(USE_CYRUS_RC4, 1, Using Cyrus RC4 implementation.)
103  ]
104)
105
106AC_CHECK_FUNCS(posix_memalign)
107
108TORRENT_CHECK_MADVISE()
109TORRENT_CHECK_CACHELINE()
110TORRENT_CHECK_POPCOUNT()
111TORRENT_CHECK_EXECINFO()
112TORRENT_CHECK_PTHREAD_SETNAME_NP()
113TORRENT_MINCORE()
114
115TORRENT_DISABLE_INSTRUMENTATION
116
117LIBTORRENT_LIBS="-ltorrent"
118AC_SUBST(LIBTORRENT_LIBS)
119
120LIBTORRENT_CFLAGS=""
121AC_SUBST(LIBTORRENT_CFLAGS)
122
123AC_DEFINE(HAVE_CONFIG_H, 1, true if config.h was included)
124
125CC_ATTRIBUTE_UNUSED(
126	AC_DEFINE([__UNUSED], [__attribute__((unused))], [Wrapper around unused attribute]),
127	AC_DEFINE([__UNUSED], [], [Null-wrapper if unused attribute is unsupported])
128)
129
130AC_OUTPUT([
131	libtorrent.pc
132	Makefile
133	src/Makefile
134	src/torrent/Makefile
135	src/torrent/data/Makefile
136	src/torrent/download/Makefile
137	src/torrent/net/Makefile
138	src/torrent/peer/Makefile
139	src/torrent/utils/Makefile
140	src/data/Makefile
141	src/dht/Makefile
142	src/download/Makefile
143	src/net/Makefile
144	src/protocol/Makefile
145	src/tracker/Makefile
146	src/utils/Makefile
147        test/Makefile
148])
149