premiere-libtorrent/configure.in

365 lines
9.9 KiB
Plaintext

AC_PREREQ(2.59)
AC_INIT(src/torrent.cpp)
AM_INIT_AUTOMAKE(libtorrent, 0.14)
# Nowhere in the source is config.h included, so make defines command line arguments
# AM_CONFIG_HEADER(config.h)
AC_PROG_CC
if test -z "$(which $CC)"; then
AC_MSG_ERROR([Unable to find a working C compiler, giving up.])
fi
AC_PROG_CPP
AC_PROG_CXX
if test -z "$(which $CXX)"; then
AC_MSG_ERROR([Unable to find a working C++ compiler, giving up.])
fi
AC_CACHE_SAVE
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_LIBTOOL
# AC_PROG_RANLIB is obsolete by AC_PROC_LIBTOOL
AC_SYS_LARGEFILE
dnl Check for pthreads.
ACX_PTHREAD
dnl Apply pthread config.
CC=$PTHREAD_CC
CPPFLAGS="$CPPFLAGS $PTHREAD_CFLAGS"
LIBS="$LIBS $PTHREAD_LIBS"
dnl Check for boost libraries.
AX_BOOST_BASE([1.35],[
AX_BOOST_SYSTEM
dnl check that Boost.System was found:
if test -z "$BOOST_SYSTEM_LIB"; then
AC_MSG_ERROR([unable to find Boost.System library, currently this is required.])
fi
AX_BOOST_ASIO
dnl check that Boost.Asio was found:
if test -z "$BOOST_ASIO_LIB"; then
AC_MSG_ERROR([Unable to find Boost.Asio library, currently this is required.])
fi
],[
AX_BOOST_BASE([1.34],[
dnl the user can choose which Asio library to use
AC_ARG_WITH([asio],
AS_HELP_STRING([--with-asio=shipped|system],
[Specify the Asio library to use, shipped or system. Default is to autodetect system and fallback to shipped.]),
[[asio=$withval]],
[[asio=shipped]]
)
dnl Check the value for the --with-asio switch
AC_MSG_CHECKING([which Asio implementation to use])
case "$asio" in
"shipped")
AC_MSG_RESULT(shipped)
ASIO_HPP=include/libtorrent/asio.hpp
ASIO_DIR=include/libtorrent/asio
AC_CHECK_FILES($ASIO_HPP $ASIO_DIR/ssl/stream.hpp $ASIO_DIR/ip/tcp.hpp,,
AC_MSG_ERROR([libtorrent depends on Asio library but it was not found.])
)
;;
"system")
AC_MSG_RESULT(system)
ASIO_HPP=/usr/include/asio.hpp
ASIO_DIR=/usr/include/asio
AC_CHECK_FILES($ASIO_HPP $ASIO_DIR/ssl/stream.hpp $ASIO_DIR/ip/tcp.hpp,,
AC_MSG_ERROR([libtorrent depends on Asio library but it was not found on your system.])
)
ln -sf $ASIO_HPP include/libtorrent
ln -sf $ASIO_DIR include/libtorrent
;;
*)
AC_MSG_RESULT(detect)
ASIO_HPP=$asio/../asio.hpp
ASIO_DIR=$asio
AC_CHECK_FILES($ASIO_HPP $ASIO_DIR/ssl/stream.hpp $ASIO_DIR/ip/tcp.hpp,,
AC_MSG_ERROR([libtorrent depends on Asio library but it was not found in the path you specified.])
)
ln -sf $ASIO_HPP include/libtorrent
ln -sf $ASIO_DIR include/libtorrent
;;
esac
])
])
AC_MSG_NOTICE([BOOST_CPPFLAGS=$BOOST_CPPFLAGS])
AC_MSG_NOTICE([BOOST_LDFLAGS=$BOOST_LDFLAGS])
AX_BOOST_IOSTREAMS
dnl check that Boost.IOStreams was found:
if test -z "$BOOST_IOSTREAMS_LIB"; then
AC_MSG_ERROR([unable to find Boost.IOStreams library, currently this is required.])
fi
AX_BOOST_DATE_TIME
dnl check that Boost.DateTime was found:
if test -z "$BOOST_DATE_TIME_LIB"; then
AC_MSG_ERROR([Unable to find Boost.DateTime library, currently this is required.])
fi
AX_BOOST_FILESYSTEM
dnl check that Boost.Filesystem was found:
if test -z "$BOOST_FILESYSTEM_LIB"; then
AC_MSG_ERROR([Unable to find Boost.Filesystem library, currently this is required.])
fi
AX_BOOST_THREAD
dnl check that Boost.Thread was found:
if test -z "$BOOST_THREAD_LIB"; then
AC_MSG_ERROR([Unable to find Boost.Thread library, currently this is required.])
fi
AX_BOOST_REGEX
dnl check that Boost.Regex was found:
if test -z "$BOOST_REGEX_LIB"; then
AC_MSG_RESULT([Unable to find Boost.Regex library, example test_client will not be build.])
BUILD_TESTCLIENT=no;
fi
AX_BOOST_PROGRAM_OPTIONS
dnl check that Boost.Program_options was found:
if test -z "$BOOST_PROGRAM_OPTIONS_LIB"; then
AC_MSG_RESULT([Unable to find Boost.Program_options library, example test_client will not be build.])
BUILD_TESTCLIENT=no;
fi
dnl Apply boost config.
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
if [[ "x$BUILD_TESTCLIENT" != "xno" ]]; then
CLIENT_TEST_BIN=client_test;
AC_SUBST(CLIENT_TEST_BIN)
fi
dnl try different ways of resolving gethostbyname
AC_CHECK_FUNC(gethostbyname, ,
AC_CHECK_LIB(resolv, gethostbyname, ,
AC_CHECK_LIB(nsl, gethostbyname, ,
AC_CHECK_LIB(ws2_32, main,
AC_CHECK_LIB(wsock32, main, [LIBS="$LIBS -lws2_32 -lwsock32";] ,
AC_MSG_ERROR([wsock32 not found. Stopped.])) ,
AC_MSG_ERROR([gethostbyname not found. Stopped.]))))
)
dnl find out what kind of logging to use
AC_ARG_WITH(
[logging],
AS_HELP_STRING([--with-logging=none|default|verbose],[Specify how much logging to use. Default is none.]),
[[logging=$withval]],
[[logging=none]]
)
COMPILETIME_OPTIONS=""
dnl Check the value for the --with-logging switch
AC_MSG_CHECKING([what form of logging to use])
case "$logging" in
"none")
AC_MSG_RESULT(none)
;;
"default")
AC_MSG_RESULT(default)
AC_DEFINE(TORRENT_LOGGING,,[define to use some logging])
COMPILETIME_OPTIONS+="-DTORRENT_LOGGING "
;;
"verbose")
AC_MSG_RESULT(verbose)
AC_DEFINE(TORRENT_VERBOSE_LOGGING,,[define to use verbose logging])
COMPILETIME_OPTIONS+="-DTORRENT_VERBOSE_LOGGING "
;;
*)
AC_MSG_RESULT()
AC_MSG_ERROR([Unknown logging option "$logging". Use either "none", "default" or "verbose".])
;;
esac
dnl find out what kind of dht-support to use
AC_ARG_WITH(
[dht],
AS_HELP_STRING([--with-dht=on|off|logging],[Specify how to use DHT support. Option logging will add extra logging. Default is on.]),
[[dht=$withval]],
[[dht=on]]
)
dnl Check the value for the --with-dht switch
AC_MSG_CHECKING([how to use DHT])
case "$dht" in
"on")
AC_MSG_RESULT(on)
;;
"off")
AC_MSG_RESULT(off)
AC_DEFINE(TORRENT_DISABLE_DHT,,[define not to use DHT support])
COMPILETIME_OPTIONS+="-DTORRENT_DISABLE_DHT "
;;
"logging")
AC_MSG_RESULT(logging)
AC_DEFINE(TORRENT_DHT_VERBOSE_LOGGING,,[define to use DHT support with extra logging])
COMPILETIME_OPTIONS+="-DTORRENT_DHT_VERBOSE_LOGGING "
;;
*)
AC_MSG_RESULT()
AC_MSG_ERROR([Unknown dht option "$dht". Use either "on", "off" or "logging".])
;;
esac
AM_CONDITIONAL(USE_DHT, test "x$dht" != "xoff")
dnl encryption support.
AC_ARG_WITH(
[encryption],
AS_HELP_STRING([--with-encryption=on|off],[Specify how to use encryption support. Default is on.]),
[[encryption=$withval]],
[[encryption=on]]
)
dnl Check the value for the --with-encryption switch
AC_MSG_CHECKING([how to use encryption])
case "$encryption" in
"on")
AC_MSG_RESULT(on)
CHECK_SSL()
AC_DEFINE(TORRENT_USE_OPENSSL,,[define to use openssl with libtorrent])
COMPILETIME_OPTIONS+="-DTORRENT_USE_OPENSSL "
;;
"off")
AC_MSG_RESULT(off)
AC_DEFINE(TORRENT_DISABLE_ENCRYPTION,,[define not to use encryption support])
COMPILETIME_OPTIONS+="-DTORRENT_DISABLE_ENCRYPTION "
;;
*)
AC_MSG_RESULT()
AC_MSG_ERROR([Unknown encryption option "$encryption". Use either "on" or "off".])
;;
esac
AM_CONDITIONAL(USE_ENCRYPTION, test "x$encryption" != "xoff")
dnl the user can choose which zlib to use
AC_ARG_WITH(
[zlib],
AS_HELP_STRING([--with-zlib=shipped|system],[Specify the zlib to use, shipped or system. Default is to autodetect system and fallback to shipped.]),
[[zlib=$withval]],
[[zlib=detect]]
)
dnl Check the value for the --with-zlib switch
AC_MSG_CHECKING([which zlib implementation to use])
case "$zlib" in
"detect")
AC_MSG_RESULT([autodetect])
AC_CHECK_LIB(z, main,
[zlib="system"],
[zlib="shipped"]
)
;;
"shipped")
AC_MSG_RESULT(shipped)
;;
"system")
AC_MSG_RESULT(system)
AC_CHECK_LIB(z, main, ,
AC_MSG_ERROR([libtorrent depends on zlib but zlib was not found on your system.])
)
;;
"no")
AC_MSG_RESULT()
AC_MSG_ERROR([libtorrent depends on zlib, you must specify either "system" or "shipped".])
;;
*)
AC_MSG_RESULT()
AC_MSG_ERROR([Unknown zlib option "$zlib". Use either "system" or "shipped".])
;;
esac
if [[ "$zlib" = "shipped" ]]; then
ZLIB="\$(top_builddir)/zlib/libzlib.la"
ZLIBDIR="zlib"
ZLIBINCL="-I\$(top_srcdir)/zlib"
AC_CONFIG_FILES(zlib/Makefile)
elif [[ "$zlib" = "system" ]]; then
ZLIB="-lz"
ZLIBDIR=""
ZLIBINCL=""
fi
dnl make ZLIB and ZLIBDIR visible to Makefiles
AC_SUBST([ZLIB])
AC_SUBST([ZLIBDIR])
AC_SUBST([ZLIBINCL])
dnl Check whether the examples should be build
AC_ARG_ENABLE(
[examples],
AS_HELP_STRING([--enable-examples],[Build the examples. Default is not to build them.]),
[[examples=$enableval]],
[[examples=no]]
)
dnl Check the value of the --with-examples switch
AC_MSG_CHECKING([if the examples should be build])
case "$examples" in
"yes")
AC_MSG_RESULT(yes)
EXAMPLESDIR="examples"
;;
"no")
AC_MSG_RESULT(no)
EXAMPLESDIR=""
;;
"")
AC_MSG_RESULT(yes (default))
EXAMPLESDIR="examples"
;;
*)
AC_MSG_RESULT()
AC_MSG_ERROR([Unknown --enable-examples option "$examples". Use either "yes" or "no".])
;;
esac
dnl make $examples visible to Makefiles
AC_SUBST([EXAMPLESDIR])
dnl Set some defines if we are building a shared library
if [[ "x$enable_shared" == "xyes" ]]; then
AC_DEFINE(TORRENT_BUILDING_SHARED,,[Make sure the functions and classes are exported.])
AC_DEFINE(TORRENT_LINKING_SHARED,,[Make sure the functions and classes are exported.])
fi
dnl want some debugging symbols with that?
AC_ARG_ENABLE(
[debug],
AS_HELP_STRING([--enable-debug],[Set compiler flags for debug symbols, default is no debugging.]),
[case "$enableval" in
no)
AC_DEFINE(NDEBUG,,[Define to disable debugging])
DEBUGFLAGS=""
COMPILETIME_OPTIONS+="-DNDEBUG "
;;
yes)
DEBUGFLAGS="-g"
COMPILETIME_OPTIONS+="-DLT_DEBUG "
;;
*)
DEBUGFLAGS="$enableval"
;;
esac],
[DEBUGFLAGS=""
AC_DEFINE(NDEBUG,,[Define to disable debugging])]
)
AC_SUBST(DEBUGFLAGS)
dnl Compile time options.
AC_SUBST(COMPILETIME_OPTIONS)
AC_CONFIG_FILES(Makefile src/Makefile include/Makefile test/Makefile libtorrent.pc)
if [[ "x$examples" == "xyes" ]]; then
AC_CONFIG_FILES(examples/Makefile)
fi
AC_OUTPUT