siproxd/configure.in
2003-03-23 01:11:45 +00:00

277 lines
6.9 KiB
Plaintext

dnl
dnl History
dnl -------
dnl before time a lot happend before start of history
dnl 8-Sep-2002 tries included more tests for used functions
dnl 17-Sep-2002 tries fail configure if needed libs not there
dnl 14-Nov-2002 tries support for *BSD systems
dnl 22-Mar-2003 tries check for sockaddr_t, hstrerror()
dnl --enable-almost-static (for Fli4l use)
dnl --enable-uclibc (uClibc building support)
dnl
dnl
dnl
dnl
dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/siproxd.c)
dnl ******************************************************************
dnl
dnl Release Version
dnl
SPD_MAJOR_VERSION=0
SPD_MINOR_VERSION=2
SPD_MICRO_VERSION=8
SPD_VERSION=$SPD_MAJOR_VERSION.$SPD_MINOR_VERSION.$SPD_MICRO_VERSION
dnl *********************************************************************
dnl
dnl Initialize automake stuff
dnl
AC_CONFIG_AUX_DIR(scripts)
AC_CANONICAL_SYSTEM
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(siproxd, $SPD_VERSION)
dnl
dnl Checks for needed programs.
dnl
AC_PROG_AWK
AC_PROG_CC
AC_PROG_INSTALL
AC_PROG_LN_S
dnl
dnl add
dnl --with-extra-includes
dnl --with-extra-libs
dnl
AC_ARG_WITH(extra-includes,
[ --with-extra-includes=DIR adds non standard include paths],
extra_includes="$withval" )
AC_SUBST(extra_includes)
AC_MSG_CHECKING("extra includes")
AC_MSG_RESULT($extra_includes)
AC_ARG_WITH(extra-libs,
[ --with-extra-libs=DIR adds non standard library paths],
extra_libs="$withval" )
AC_SUBST(extra_libs)
AC_MSG_CHECKING("extra libs")
AC_MSG_RESULT($extra_libs)
for each in $extra_includes; do
CPPFLAGS="$CPPFLAGS -I$each";
done
for each in $extra_libs; do
LIBS="$LIBS -L$each";
done
dnl
dnl system specific stuff
dnl
AC_MSG_CHECKING("target platform")
case "$target" in
*-*-linux*)
AC_MSG_RESULT("Linux")
AC_DEFINE(_LINUX,,[building on Linux platform])
;;
*-*-freebsd*)
AC_MSG_RESULT("FreeBSD")
AC_DEFINE(_BSD,,[building on BSD platform])
AC_DEFINE(_FREEBSD,,[building on FreeBSD platform])
CPPFLAGS="$CPPFLAGS -I/usr/local/include/"
LIBS="$LIBS -L/usr/local/lib/ -lgnugetopt"
;;
*-*-openbsd*)
AC_MSG_RESULT("OpenBSD")
AC_DEFINE(_BSD,,[building on BSD platform])
AC_DEFINE(_OPENBSD,,[building on OpenBSD platform])
CPPFLAGS="$CPPFLAGS -I/usr/local/include/"
LIBS="$LIBS -L/usr/local/lib/"
;;
*-*-netbsd*)
AC_MSG_RESULT("NetBSD")
AC_DEFINE(_BSD,,[building on BSD platform])
AC_DEFINE(_NETBSD,,[building on NetBSD platform])
CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
LIBS="$LIBS -L/usr/pkg/lib"
;;
*)
;;
esac
dnl
dnl uClibc support (only available on Linux, yet)
dnl
case "$target" in
*-*-linux*)
uclibc_path="/usr/i386-linux-uclibc/"
AC_MSG_CHECKING("uClibc path")
AC_ARG_WITH(uclibc-path,
[ --with-uclibc-path=DIR directory to uClibc development],
uclibc_path="$withval" )
AC_MSG_RESULT($uclibc_path)
AC_MSG_CHECKING("build against uClibc")
AC_ARG_ENABLE(uclibc,
[ --enable-uclibc build against a uClibc],
build_uclibc=$enableval,
build_uclibc="no")
AC_MSG_RESULT($build_uclibc)
;;
*)
AC_MSG_RESULT("FEATURE uclibc not available on this platform")
;;
esac
if test "x$build_uclibc" = "xyes"; then
CC=$uclibc_path/bin/i386-uclibc-gcc
LDD=$uclibc_path/bin/i386-uclibc-ldd
LD=$uclibc_path/bin/i386-uclibc-ld
CPPFLAGS=" -I $uclibc_path/include/ $CPPFLAGS"
LIBS=" -L $uclibc_path/lib/ $LIBS"
fi
dnl
dnl Features:
dnl almost-static (only available on Linux, yet)
dnl
case "$target" in
*-*-linux*)
AC_MSG_CHECKING("build almost static")
AC_ARG_ENABLE(almost-static,
[ --enable-almost-static only link dynamically to libc, rest static],
build_almost_static=$enableval,
build_almost_static="no")
AC_MSG_RESULT($build_almost_static)
;;
*)
AC_MSG_RESULT("FEATURE almost-static not available on this platform")
;;
esac
if test "x$build_almost_static" = "xyes"; then
if test "x$build_uclibc" = "xyes"; then
dnl uClibc: make libosip static
build_static_libosip="yes"
build_static_pthread="no"
else
dnl must be standard libc: make libosip and libpthread static
build_static_libosip="yes"
build_static_pthread="yes"
fi
else
build_static_libosip="no"
build_static_pthread="no"
fi
dnl
dnl Check for libosip
dnl
if test "x$build_static_libosip" = "xno"; then
dnl link dynamically (default)
AC_CHECK_LIB(osip, parser_init,,
echo "*** ERROR: libosip is required!";exit 1;)
else
dnl link statically to this lib
dnl (this probably only will work on linux yet...)
AC_MSG_CHECKING("where I can find libosip.a")
libosip_static=`find $extra_libs /lib /usr/lib /usr/local/lib \
-name libosip.a 2>/dev/null|head -1`
if test "x$libosip_static" != "x"; then
LIBS="$libosip_static $LIBS"
AC_MSG_RESULT($libosip_static)
else
echo "*** ERROR: a static libosip library is required!";exit 1;
fi
fi
dnl
dnl Check for pthreads
dnl
ACX_PTHREAD(,
echo "*** ERROR: pthreads is required!"; exit 1;)
if test "x$build_static_pthread" = "xno"; then
dnl link dynamically (default)
LIBS="$PTHREAD_LIBS $LIBS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
CC="$PTHREAD_CC"
else
dnl link statically to this lib
dnl (this probably only will work on linux yet...)
AC_MSG_CHECKING("where I can find static threads library")
libpthreads_static=`find $extra_libs /lib /usr/lib /usr/local/lib \
-name 'lib*thread*.a' 2>/dev/null| \
egrep 'lib[p]?thread[s]?.a' |head -1`
if test "x$libpthreads_static" != "x"; then
LIBS="$libpthreads_static $LIBS"
AC_MSG_RESULT($libpthreads_static)
else
echo "*** ERROR: a static threads library is required!";exit 1;
fi
CC="$PTHREAD_CC"
fi
dnl
dnl Checks for header files.
dnl
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/time.h unistd.h errno.h)
AC_CHECK_HEADERS(stdarg.h varargs.h)
AC_CHECK_HEADERS(pwd.h)
dnl
dnl Checks for typedefs, structures, and compiler characteristics.
dnl
AC_C_CONST
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM
dnl check for typedef socklen (not available on SUSE 5.3 for example)
AC_MSG_CHECKING("typedef socklen_t")
AC_EGREP_HEADER([typedef.*socklen_t], sys/socket.h,
AC_MSG_RESULT("available"),
AC_MSG_RESULT("not available - create DEFINE to uint")
AC_DEFINE(socklen_t, [unsigned int],[typedef socklen_t available])
)
dnl
dnl Checks for library functions.
dnl
AC_FUNC_MEMCMP
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(strerror)
AC_CHECK_FUNCS(gethostbyname)
AC_CHECK_FUNCS(getopt_long daemon syslog)
AC_CHECK_FUNCS(getuid setuid getgid setgid getpwnam chroot)
AC_CHECK_FUNCS(socket bind select read send sendto)
AC_CHECK_FUNCS(strncpy strchr strstr sprintf vfprintf vsnprintf)
AC_CHECK_FUNCS(fgets sscanf hstrerror)
AC_SUBST(CPPFLAGS)
AC_SUBST(LIBS)
dnl
dnl Generate output files
dnl
AC_OUTPUT(Makefile \
src/Makefile \
doc/Makefile \
scripts/Makefile \
)