forked from Mirrors/freeswitch
df33a43acf
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13926 d0543943-73ff-0310-b7d9-9358b9ac24b2
829 lines
27 KiB
Plaintext
829 lines
27 KiB
Plaintext
# -*- Autoconf -*-
|
|
# Process this file with autoconf to produce a configure script.
|
|
|
|
# Must change all of the below together
|
|
# For a release, set revision for that tagged release as well and uncomment
|
|
AC_INIT([freeswitch], [1.0.trunk], BUG-REPORT-ADDRESS)
|
|
AC_SUBST(SWITCH_VERSION_MAJOR, [1])
|
|
AC_SUBST(SWITCH_VERSION_MINOR, [0])
|
|
AC_SUBST(SWITCH_VERSION_MICRO, [trunk])
|
|
#AC_SUBST(SWITCH_VERSION_REVISION, [svn-revision-here])
|
|
|
|
AC_CONFIG_FILES([src/include/switch_version.h.in:src/include/switch_version.h.template])
|
|
|
|
AC_CONFIG_AUX_DIR(build/config)
|
|
AM_INIT_AUTOMAKE(libfreeswitch,0.1)
|
|
AC_CONFIG_SRCDIR([src/switch.c])
|
|
AC_CONFIG_HEADER([src/include/switch_private.h])
|
|
AC_CONFIG_HEADER([libs/xmlrpc-c/xmlrpc_amconfig.h])
|
|
|
|
AC_PREFIX_DEFAULT(/usr/local/freeswitch)
|
|
# AC_PREFIX_DEFAULT does not get expanded until too late so we need to do this to use prefix in this script
|
|
if test "x$prefix" = "xNONE" ; then
|
|
prefix='/usr/local/freeswitch'
|
|
fi
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
# Absolute source/build directory
|
|
switch_srcdir=`(cd $srcdir && pwd)`
|
|
switch_builddir=`pwd`
|
|
AC_SUBST(switch_srcdir)
|
|
AC_SUBST(switch_builddir)
|
|
|
|
# Where to install the modules
|
|
AC_ARG_WITH([modinstdir],
|
|
[AS_HELP_STRING([--with-modinstdir=DIR], [Install modules into this location (default: $prefix/mod)])], [modinstdir="$withval"], [modinstdir="${prefix}/mod"])
|
|
|
|
AC_SUBST(modinstdir)
|
|
AC_DEFINE_UNQUOTED([SWITCH_MOD_DIR],"${modinstdir}",[where to install the modules to])
|
|
|
|
if test "$sysconfdir" = "\${prefix}/etc" ; then
|
|
confdir="$prefix/conf"
|
|
else
|
|
confdir="$sysconfdir"
|
|
fi
|
|
|
|
AC_SUBST(confdir)
|
|
AC_DEFINE_UNQUOTED([SWITCH_CONF_DIR],"${confdir}",[directory for configuration files])
|
|
|
|
#Set default language
|
|
AC_LANG_C
|
|
# Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
|
|
#check if the g++ compiler works
|
|
AC_CACHE_CHECK([whether the C++ compiler works], [ac_cv_sys_cxx_works], [
|
|
AC_LANG_PUSH([C++])
|
|
AC_COMPILE_IFELSE([int main() { }], [ac_cv_sys_cxx_works=yes],
|
|
[ac_cv_sys_cxx_works=no])
|
|
AC_LANG_POP([C++])
|
|
])
|
|
[ if [ "x$ac_cv_sys_cxx_works" = "xno" ]; then ]
|
|
AC_MSG_FAILURE([The C++ compiler does not work. Please (re)install the C++ compiler])
|
|
[ fi ]
|
|
|
|
AC_PROG_AWK
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_INSTALL
|
|
|
|
#override some default libtool behavior and invoke AC_PROG_LIBTOOL (see http://lists.gnu.org/archive/html/libtool/2007-03/msg00000.html)
|
|
m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
|
|
m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
|
|
m4_defun([_LT_AC_LANG_RC_CONFIG], [:])
|
|
AM_PROG_CC_C_O
|
|
AC_PROG_LIBTOOL
|
|
|
|
#Check for compiler vendor
|
|
AX_COMPILER_VENDOR
|
|
|
|
# Optimize
|
|
AC_ARG_ENABLE(optimization,
|
|
[AC_HELP_STRING([--enable-optimization],[Set if you want us to add max optimising compiler flags])],[enable_optimizer="$enableval"],[enable_optimizer="no"])
|
|
|
|
if test "${enable_optimizer}" = "yes" ; then
|
|
AC_DEFINE([OPTIMZER],[],[Enable Optimization.])
|
|
AX_CC_MAXOPT
|
|
fi
|
|
|
|
# set defaults for use on all platforms
|
|
SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src"
|
|
SWITCH_AM_CXXFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src"
|
|
SWITCH_AM_LDFLAGS="-lm"
|
|
|
|
#set SOLINK variable based on compiler and host
|
|
if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
|
|
SOLINK="-Bdynamic -dy -G"
|
|
elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
|
|
case "$host" in
|
|
*darwin*)
|
|
SOLINK="-dynamic -bundle -force-flat-namespace"
|
|
;;
|
|
*-solaris2*)
|
|
SOLINK="-shared -Xlinker"
|
|
;;
|
|
*)
|
|
SOLINK="-shared -Xlinker -x"
|
|
;;
|
|
esac
|
|
else
|
|
AC_ERROR([Please update configure.in with SOLINK values for your compiler])
|
|
fi
|
|
|
|
# set DYNAMIC_LIB_EXTEN
|
|
# we should really be using libtool so we don't need to do this
|
|
case "$host" in
|
|
*cygwin* | *mingw*)
|
|
DYNAMIC_LIB_EXTEN="dll"
|
|
;;
|
|
*)
|
|
DYNAMIC_LIB_EXTEN="so"
|
|
;;
|
|
esac
|
|
|
|
##
|
|
# detect libtool major version,
|
|
# set libtool library extension based on this
|
|
# to work around some brokeness when using 'la' with libtool-1.5
|
|
#
|
|
AC_MSG_CHECKING([libtool major version])
|
|
libtool="${switch_builddir}/libtool"
|
|
LIBTOOL_MAJOR_VERSION="`$libtool --version 2>/dev/null| sed -e 's/([[^)]]*)//g;s/^[[^0-9]]*//;s/[[- ]].*//g;q'| awk 'BEGIN { FS = "." } { print $1 }' `"
|
|
if test -z "$LIBTOOL_MAJOR_VERSION" ; then
|
|
LIBTOOL_MAJOR_VERSION="`sed -n -e '/^VERSION/{s/^.*=\"\?\([[0-9]]\+\)\..\+/\1/;p;}' ${switch_srcdir}/build/config/ltmain.sh`"
|
|
fi
|
|
if test -z "$LIBTOOL_MAJOR_VERSION" ; then
|
|
AC_MSG_ERROR([Failed to detect your libtool version, please open a bug report on http://jira.freeswitch.org/])
|
|
fi
|
|
AC_MSG_RESULT([${LIBTOOL_MAJOR_VERSION}])
|
|
|
|
LIBTOOL_LIB_EXTEN="$DYNAMIC_LIB_EXTEN"
|
|
|
|
if test "${LIBTOOL_MAJOR_VERSION}" = "2" ; then
|
|
LIBTOOL_LIB_EXTEN="la"
|
|
fi
|
|
AC_MSG_RESULT([using libtool library extension... ${LIBTOOL_LIB_EXTEN}])
|
|
|
|
|
|
# Enable 64 bit build
|
|
AC_ARG_ENABLE(64,
|
|
[AC_HELP_STRING([--enable-64],[build with 64 bit support])],[enable_64="$enable_64"],[enable_64="no"])
|
|
|
|
# tweak compiler specific flags
|
|
if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -KPIC)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -DPIC)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -erroff=E_END_OF_LOOP_CODE_NOT_REACHED)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -errtags=yes)
|
|
APR_ADDTO(SWITCH_AM_CXXFLAGS, -errtags=yes)
|
|
APR_ADDTO(SWITCH_AM_CXXFLAGS, -KPIC)
|
|
APR_ADDTO(SWITCH_AM_CXXFLAGS, -DPIC)
|
|
APR_ADDTO(SWITCH_AM_CXXFLAGS, "-features=extensions")
|
|
|
|
APR_ADDTO(SWITCH_AM_LDFLAGS, -R${prefix}/lib)
|
|
if test "${enable_64}" = "yes"; then
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -m64)
|
|
APR_ADDTO(SWITCH_AM_CXXFLAGS, -m64)
|
|
APR_ADDTO(SWITCH_AM_LDFLAGS, -m64)
|
|
LIBS="$LIBS -m64"
|
|
fi
|
|
elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -fPIC)
|
|
APR_ADDTO(SWITCH_AM_CXXFLAGS, -fPIC)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -Werror)
|
|
if test "${enable_64}" = "yes"; then
|
|
LIBS="$LIBS -m64"
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# gcc visibility cflag checks
|
|
#
|
|
AC_ARG_ENABLE([visibility],
|
|
[AS_HELP_STRING([--disable-visibility], [Disable or enable API visibility support (default: use if available)])],
|
|
[enable_visibility="${enableval}"],
|
|
[enable_visibility="detect"]
|
|
)
|
|
HAVE_VISIBILITY="no"
|
|
|
|
if test "x${enable_visibility}" != "xno" ; then
|
|
|
|
case "${ax_cv_c_compiler_vendor}" in
|
|
gnu)
|
|
save_CFLAGS="${CFLAGS}"
|
|
CFLAGS="${CFLAGS} -fvisibility=hidden"
|
|
AC_MSG_CHECKING([whether the compiler supports -fvisibility=hidden])
|
|
AC_COMPILE_IFELSE(
|
|
[AC_LANG_PROGRAM(
|
|
[int foo __attribute__ ((visibility("default")));],
|
|
[;]
|
|
)],
|
|
|
|
[AC_MSG_RESULT([yes])
|
|
APR_ADDTO([SWITCH_AM_CFLAGS], [-fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
|
|
APR_ADDTO([SWITCH_AM_CXXFLAGS], [-fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
|
|
HAVE_VISIBILITY="yes"],
|
|
|
|
[AC_MSG_RESULT([no])]
|
|
)
|
|
CFLAGS="${save_CFLAGS}"
|
|
;;
|
|
|
|
sun)
|
|
# save_CFLAGS="${CFLAGS}"
|
|
# CFLAGS="${CFLAGS} -xldscope=hidden"
|
|
# AC_MSG_CHECKING([whether the compiler supports -xldscope=hidden])
|
|
# AC_COMPILE_IFELSE(
|
|
# [AC_LANG_PROGRAM(
|
|
# [int foo __attribute__ ((visibility("default")));],
|
|
# [;]
|
|
# )],
|
|
#
|
|
# [AC_MSG_RESULT([yes])
|
|
# APR_ADDTO([SWITCH_AM_CFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
|
|
# APR_ADDTO([SWITCH_AM_CXXFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
|
|
# HAVE_VISIBILITY="yes"],
|
|
#
|
|
# [AC_MSG_RESULT([no])]
|
|
# )
|
|
# CFLAGS="${save_CFLAGS}"
|
|
;;
|
|
|
|
*)
|
|
if test "x${enable_visibility}" = "xyes" ; then
|
|
AC_MSG_ERROR([Non-GNU / SUN compilers are currently unsupported])
|
|
else
|
|
AC_MSG_WARN([Non-GNU / SUN compilers are currently unsupported])
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
#
|
|
# visibility explicitly requested but not supported by this compiler => error
|
|
#
|
|
if test "x${enable_visibility}" = "xyes" -a "x${HAVE_VISIBILITY}" = "xno" ; then
|
|
AC_MSG_ERROR([API visibility not supported by this compiler])
|
|
fi
|
|
fi
|
|
|
|
# Enable debugging (default: on)
|
|
# (rename option if the default is changed)
|
|
AC_ARG_ENABLE(debug,
|
|
[AC_HELP_STRING([--disable-debug],[build without debug information])],[enable_debug="$enableval"],[enable_debug="yes"])
|
|
|
|
if test "${enable_debug}" = "yes"; then
|
|
AC_DEFINE([DEBUG],[],[Enable extra debugging.])
|
|
AX_CFLAGS_WARN_ALL_ANSI
|
|
|
|
if test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -g -ggdb)
|
|
export DEBUG_CFLAGS="-g -ggdb"
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_ARG_ENABLE(zrtp,
|
|
[AS_HELP_STRING([--enable-zrtp], [Compile with zrtp Support])],,[enable_zrtp="no"])
|
|
if test "x$enable_zrtp" = "xyes" ; then
|
|
saved_LIBS=$LIBS
|
|
LIBS="$saved_LIBS -L/usr/local/lib -lbn -lpthread"
|
|
AC_CHECK_LIB(zrtp, zrtp_init, [has_zrtp="yes"], [has_zrtp="no"])
|
|
LIBS=$saved_LIBS
|
|
if test "x$has_zrtp" = "xno"; then
|
|
AC_ERROR([Cannot locate zrtp libraries])
|
|
fi
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -DENABLE_ZRTP)
|
|
fi
|
|
AM_CONDITIONAL([ENABLE_ZRTP],[test "x$enable_zrtp" != "xno"])
|
|
|
|
|
|
AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
|
|
|
|
AC_ARG_ENABLE(core-odbc-support,
|
|
[AS_HELP_STRING([--enable-core-odbc-support], [Compile with ODBC Support])],,[enable_core_odbc_support="no"])
|
|
AX_LIB_ODBC
|
|
if test "$ac_cv_found_odbc" = "yes" ; then
|
|
enable_core_odbc_support="yes"
|
|
fi
|
|
|
|
ESL_LDFLAGS=
|
|
PLATFORM_CORE_DEPLIBS=
|
|
# tweak platform specific flags
|
|
case "$host" in
|
|
*darwin*)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
|
|
APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
|
|
if test "x$enable_core_odbc_support" != "xno"; then
|
|
APR_ADDTO(PLATFORM_CORE_DEPLIBS, --framework CoreFoundation)
|
|
fi
|
|
;;
|
|
*-solaris2*)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -DPATH_MAX=2048)
|
|
APR_ADDTO(ESL_LDFLAGS, -lnsl -lsocket)
|
|
;;
|
|
*bsd*)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
|
|
;;
|
|
esac
|
|
|
|
APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99)
|
|
|
|
AC_SUBST(SWITCH_AM_CFLAGS)
|
|
AC_SUBST(SWITCH_AM_CXXFLAGS)
|
|
AC_SUBST(SWITCH_AM_LDFLAGS)
|
|
AC_SUBST(ESL_LDFLAGS)
|
|
AC_SUBST(PLATFORM_CORE_DEPLIBS)
|
|
AC_SUBST(SOLINK)
|
|
AC_SUBST(DYNAMIC_LIB_EXTEN)
|
|
AC_SUBST(LIBTOOL_LIB_EXTEN)
|
|
|
|
# Checks for header files.
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS([sys/types.h sys/resource.h sched.h wchar.h sys/filio.h sys/ioctl.h netdb.h execinfo.h])
|
|
|
|
# for xmlrpc-c config.h
|
|
if test x"$ac_cv_header_wchar_h" = xyes; then
|
|
HAVE_WCHAR_H_DEFINE=1
|
|
else
|
|
HAVE_WCHAR_H_DEFINE=0
|
|
fi
|
|
AC_SUBST(HAVE_WCHAR_H_DEFINE)
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_SIZE_T
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
|
|
# Checks for library functions.
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_FUNC_MALLOC
|
|
AC_TYPE_SIGNAL
|
|
AC_FUNC_STRFTIME
|
|
AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep getifaddrs])
|
|
AC_CHECK_FUNCS([sched_setscheduler setpriority setrlimit setgroups initgroups])
|
|
AC_CHECK_FUNCS([wcsncmp setgroups asprintf setenv pselect gettimeofday localtime_r gmtime_r strcasecmp stricmp _stricmp])
|
|
|
|
AC_CHECK_LIB(rt, clock_gettime, [AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime()])])
|
|
AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])])
|
|
AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
|
|
|
|
AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
|
|
#include <sys/types.h>
|
|
#include <time.h>])
|
|
|
|
AC_CHECK_MEMBERS([struct tm.tm_zone],,,[
|
|
#include <sys/types.h>
|
|
#include <time.h>])
|
|
|
|
AC_CHECK_DECL([RLIMIT_MEMLOCK],
|
|
[AC_DEFINE([HAVE_RLIMIT_MEMLOCK],[1],[RLIMIT_MEMLOCK constant for setrlimit])],,
|
|
[#ifdef HAVE_SYS_RESOURCE_H
|
|
#include <sys/resource.h>
|
|
#endif])
|
|
|
|
AC_CHECK_DECL([SCHED_RR],
|
|
[AC_DEFINE([HAVE_SCHED_RR],[1],[SCHED_RR constant for sched_setscheduler])],,
|
|
[#ifdef HAVE_SCHED_H
|
|
#include <sched.h>
|
|
#endif])
|
|
|
|
#
|
|
# use mlockall only on linux (for now; if available)
|
|
#
|
|
if test "x${ac_cv_func_mlockall}" = "xyes"; then
|
|
AC_MSG_CHECKING([whether to use mlockall])
|
|
case "$host" in
|
|
*-linux-*)
|
|
AC_DEFINE([USE_MLOCKALL],[1],[Enable mlockall support])
|
|
AC_MSG_RESULT([yes])
|
|
USE_MLOCKALL=yes
|
|
;;
|
|
*-freebsd*)
|
|
AC_MSG_RESULT([no, broken for non-root users])
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT([no])
|
|
;;
|
|
esac
|
|
|
|
#
|
|
# setrlimit prerequisites
|
|
#
|
|
if test "x${USE_MLOCKALL}" = "xyes" -a \
|
|
"x${ac_cv_func_setrlimit}" = "xyes" -a \
|
|
"x${ac_cv_have_decl_RLIMIT_MEMLOCK}" = "xyes"
|
|
then
|
|
AC_DEFINE([USE_SETRLIMIT],[1],[Use setrlimit to disable mlock limit for non-root users])
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# sched_setcheduler + round-robin scheduler prerequisites
|
|
#
|
|
if test "x${ac_cv_func_sched_setscheduler}" = "xyes" -a \
|
|
"x${ac_cv_have_decl_SCHED_RR}" = "xyes"
|
|
then
|
|
AC_DEFINE([USE_SCHED_SETSCHEDULER],[1],[Enable round-robin scheduler using sched_setscheduler])
|
|
fi
|
|
|
|
#
|
|
# xmlrpc-c checks
|
|
#
|
|
|
|
|
|
HAVE_LIBWWW_SSL_DEFINE=0
|
|
AC_SUBST(HAVE_LIBWWW_SSL_DEFINE)
|
|
|
|
DIRECTORY_SEPARATOR="/"
|
|
AC_SUBST(DIRECTORY_SEPARATOR)
|
|
|
|
va_list_is_array=no
|
|
AC_MSG_CHECKING(whether va_list is an array)
|
|
AC_TRY_COMPILE([
|
|
#include <stdarg.h>
|
|
], [va_list list1, list2; list1 = list2;], ,
|
|
va_list_is_array=yes)
|
|
AC_MSG_RESULT($va_list_is_array)
|
|
if test x"$va_list_is_array" = xyes; then
|
|
VA_LIST_IS_ARRAY_DEFINE=1
|
|
else
|
|
VA_LIST_IS_ARRAY_DEFINE=0
|
|
fi
|
|
AC_SUBST(VA_LIST_IS_ARRAY_DEFINE)
|
|
|
|
AC_MSG_CHECKING(whether compiler has __attribute__)
|
|
AC_TRY_COMPILE(, [int x __attribute__((__unused__));],
|
|
compiler_has_attribute=yes,
|
|
compiler_has_attribute=no)
|
|
AC_MSG_RESULT($compiler_has_attribute)
|
|
if test x"$compiler_has_attribute" = xyes; then
|
|
ATTR_UNUSED="__attribute__((__unused__))"
|
|
else
|
|
ATTR_UNUSED=
|
|
fi
|
|
AC_SUBST(ATTR_UNUSED)
|
|
|
|
|
|
|
|
|
|
AC_C_BIGENDIAN(AC_DEFINE([SWITCH_BYTE_ORDER],__BIG_ENDIAN,[Big Endian]),AC_DEFINE([SWITCH_BYTE_ORDER],__LITTLE_ENDIAN,[Little Endian]))
|
|
|
|
# Checks for integer size
|
|
AC_CHECK_SIZEOF(char, 1)
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
AC_CHECK_SIZEOF(long, 4)
|
|
AC_CHECK_SIZEOF(short, 2)
|
|
AC_CHECK_SIZEOF(long long, 8)
|
|
AC_TYPE_SIZE_T
|
|
AC_CHECK_TYPE(ssize_t, int)
|
|
|
|
# Checks for pointer size
|
|
AC_CHECK_SIZEOF(void*, 4)
|
|
|
|
if test "x$ac_cv_sizeof_voidp" != "x"; then
|
|
voidp_size=$ac_cv_sizeof_voidp
|
|
else
|
|
AC_ERROR([Cannot determine size of void*])
|
|
fi
|
|
|
|
if test "$ac_cv_sizeof_short" = "2"; then
|
|
short_value=short
|
|
fi
|
|
if test "$ac_cv_sizeof_int" = "4"; then
|
|
int_value=int
|
|
fi
|
|
|
|
if test "$ac_cv_sizeof_int" = "8"; then
|
|
int64_t_fmt='#define SWITCH_INT64_T_FMT "d"'
|
|
uint64_t_fmt='#define SWITCH_UINT64_T_FMT "u"'
|
|
int64_value="int"
|
|
long_value=int
|
|
elif test "$ac_cv_sizeof_long" = "8"; then
|
|
int64_t_fmt='#define SWITCH_INT64_T_FMT "ld"'
|
|
uint64_t_fmt='#define SWITCH_UINT64_T_FMT "lu"'
|
|
int64_value="long"
|
|
long_value=long
|
|
elif test "$ac_cv_sizeof_long_long" = "8"; then
|
|
int64_t_fmt='#define SWITCH_INT64_T_FMT "lld"'
|
|
uint64_t_fmt='#define SWITCH_UINT64_T_FMT "llu"'
|
|
int64_value="long long"
|
|
long_value="long long"
|
|
elif test "$ac_cv_sizeof_longlong" = "8"; then
|
|
int64_t_fmt='#define SWITCH_INT64_T_FMT "qd"'
|
|
uint64_t_fmt='#define SWITCH_UINT64_T_FMT "qu"'
|
|
int64_value="__int64"
|
|
long_value="__int64"
|
|
else
|
|
AC_ERROR([could not detect a 64-bit integer type])
|
|
fi
|
|
|
|
if test "$ac_cv_type_size_t" = "yes"; then
|
|
size_t_value="size_t"
|
|
else
|
|
size_t_value="switch_int32_t"
|
|
fi
|
|
|
|
if test "$ac_cv_type_ssize_t" = "yes"; then
|
|
ssize_t_value="ssize_t"
|
|
else
|
|
ssize_t_value="switch_int32_t"
|
|
fi
|
|
|
|
APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8)
|
|
|
|
if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then
|
|
ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"'
|
|
elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
|
|
ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
|
|
else
|
|
ssize_t_fmt='#error Can not determine the proper size for ssize_t'
|
|
fi
|
|
|
|
APR_CHECK_SIZEOF_EXTENDED([#include <stddef.h>], size_t, 8)
|
|
|
|
if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then
|
|
size_t_fmt='#define SWITCH_SIZE_T_FMT "d"'
|
|
elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
|
|
size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
|
|
else
|
|
size_t_fmt='#error Can not determine the proper size for size_t'
|
|
fi
|
|
|
|
# Basically, we have tried to figure out the correct format strings
|
|
# for SWITCH types which vary between platforms, but we don't always get
|
|
# it right. If you find that we don't get it right for your platform,
|
|
# you can override our decision below.
|
|
# NOTE: borrowed much of this logic from apr.
|
|
case $host in
|
|
s390*linux*)
|
|
# uniquely, the 31-bit Linux/s390 uses "unsigned long int"
|
|
# for size_t rather than "unsigned int":
|
|
size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
|
|
ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
|
|
;;
|
|
*-os2*)
|
|
size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
|
|
;;
|
|
*-openbsd*)
|
|
size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
|
|
;;
|
|
*aix4*|*aix5*)
|
|
ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
|
|
size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
|
|
;;
|
|
*beos*)
|
|
ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
|
|
size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
|
|
;;
|
|
*apple-darwin*)
|
|
osver=`uname -r`
|
|
case $osver in
|
|
[0-7].*)
|
|
ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"'
|
|
;;
|
|
*)
|
|
ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
|
|
;;
|
|
esac
|
|
size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(voidp_size)
|
|
AC_SUBST(short_value)
|
|
AC_SUBST(int_value)
|
|
AC_SUBST(long_value)
|
|
AC_SUBST(int64_value)
|
|
AC_SUBST(size_t_value)
|
|
AC_SUBST(ssize_t_value)
|
|
AC_SUBST(int64_t_fmt)
|
|
AC_SUBST(uint64_t_fmt)
|
|
AC_SUBST(ssize_t_fmt)
|
|
AC_SUBST(size_t_fmt)
|
|
AC_SUBST(libdir)
|
|
AC_SUBST(bindir)
|
|
AC_SUBST(includedir)
|
|
|
|
AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat)
|
|
AC_PATH_PROGS(TAR, gtar tar)
|
|
AC_PATH_PROGS(WGET, wget)
|
|
AC_PATH_PROGS(CURL, curl)
|
|
GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh"
|
|
AC_SUBST(GETLIB)
|
|
GETSOUNDS="${SHELL} $switch_srcdir/build/getsounds.sh"
|
|
AC_SUBST(GETSOUNDS)
|
|
|
|
|
|
LIBCURL_CHECK_CONFIG([yes], [7.13.0], [LIBCURL_DEPS=''], [LIBCURL_DEPS='${switch_srcdir}/libs/curl/lib/libcurl.la';LIBCURL='${switch_srcdir}/libs/curl/lib/libcurl.la';LIBCURL_CPPFLAGS='-I${switch_srcdir}/libs/curl/include'])
|
|
AC_SUBST(LIBCURL_DEPS)
|
|
|
|
|
|
AC_ARG_ENABLE(core-libedit-support,
|
|
[AS_HELP_STRING([--disable-core-libedit-support], [Compile without libedit Support])], [enable_core_libedit_support="$enableval"], [enable_core_libedit_support="yes"])
|
|
|
|
if test "$enable_core_libedit_support" = "yes" ; then
|
|
AC_CHECK_LIB(ncurses, tgetent,,
|
|
[AC_CHECK_LIB(curses, tgetent,,
|
|
[AC_MSG_ERROR([libtermcap, libcurses or libncurses are required!])] )] )
|
|
fi
|
|
|
|
SAC_OPENSSL
|
|
|
|
if test x$HAVE_OPENSSL = x1; then
|
|
openssl_CFLAGS="$openssl_CFLAGS -DHAVE_OPENSSL";
|
|
fi
|
|
|
|
AX_CHECK_JAVA
|
|
|
|
|
|
AM_CONDITIONAL([ADD_ODBC],[test "x$enable_core_odbc_support" != "xno"])
|
|
AM_CONDITIONAL([ADD_LIBEDIT],[test "x$enable_core_libedit_support" != "xno"])
|
|
AM_CONDITIONAL([HAVE_MYSQL],[test "$found_mysql" = "yes"])
|
|
|
|
#
|
|
# Python checks for mod_python
|
|
#
|
|
AC_ARG_WITH(
|
|
[python],
|
|
[AS_HELP_STRING([--with-python], [Use system provided version of python (default: try)])],
|
|
[with_python="$withval"],
|
|
[with_python="try"]
|
|
)
|
|
|
|
if test "$with_python" != "no"
|
|
then
|
|
save_CFLAGS="$CFLAGS"
|
|
save_LIBS="$LIBS"
|
|
|
|
if test "$with_python" != "yes" -a "$with_python" != "try" ; then
|
|
AC_MSG_CHECKING([for python])
|
|
if test ! -x "$with_python" ; then
|
|
AC_MSG_ERROR([Specified python does not exist or is not executable: $with_python])
|
|
fi
|
|
AC_MSG_RESULT([$with_python])
|
|
AC_SUBST([PYTHON], ["$with_python"])
|
|
else
|
|
AC_PATH_PROG([PYTHON], ["python"], ["no"], ["$PATH:/usr/bin:/usr/local/bin"])
|
|
fi
|
|
|
|
if test "$PYTHON" != "no" ; then
|
|
AC_MSG_CHECKING([python version])
|
|
PYTHON_VER="`$PYTHON -V 2>&1 | cut -d' ' -f2`"
|
|
|
|
if test -z "$PYTHON_VER" ; then
|
|
AC_MSG_ERROR([Unable to detect python version])
|
|
fi
|
|
AC_MSG_RESULT([$PYTHON_VER])
|
|
|
|
AC_MSG_CHECKING([for python distutils])
|
|
python_result="`$PYTHON -c 'import distutils;' 2>&1`"
|
|
if test -z "$python_result" ; then
|
|
python_has_distutils="yes"
|
|
else
|
|
python_has_distutils="no"
|
|
fi
|
|
AC_MSG_RESULT([$python_has_distutils])
|
|
|
|
if test "$python_has_distutils" != "no" ; then
|
|
AC_MSG_CHECKING([location of site-packages])
|
|
|
|
PYTHON_SITE_DIR="`$PYTHON -c 'from distutils import sysconfig; print sysconfig.get_python_lib(0);'`"
|
|
|
|
if test -z "$PYTHON_SITE_DIR" ; then
|
|
AC_MSG_ERROR([Unable to detect python site-packages path])
|
|
elif test ! -d "$PYTHON_SITE_DIR" ; then
|
|
AC_MSG_ERROR([Path $PYTHON_SITE_DIR returned by python does not exist!])
|
|
fi
|
|
AC_MSG_RESULT([$PYTHON_SITE_DIR])
|
|
AC_SUBST([PYTHON_SITE_DIR], [$PYTHON_SITE_DIR])
|
|
|
|
#
|
|
# python distutils found, get settings from python directly
|
|
#
|
|
PYTHON_CFLAGS="`$PYTHON -c 'from distutils import sysconfig; flags = [[\"-I\" + sysconfig.get_python_inc(0), \"-I\" + sysconfig.get_python_inc(1), \" \".join(sysconfig.get_config_var(\"CFLAGS\").split())]]; print \" \".join(flags);'`"
|
|
PYTHON_LDFLAGS="`$PYTHON -c 'from distutils import sysconfig; libs = sysconfig.get_config_var(\"LIBS\").split() + sysconfig.get_config_var(\"SYSLIBS\").split(); libs.append(\"-lpython\"+sysconfig.get_config_var(\"VERSION\")); print \" \".join(libs);'`"
|
|
PYTHON_LIB="`$PYTHON -c 'from distutils import sysconfig; print \"python\" + sysconfig.get_config_var(\"VERSION\");'`"
|
|
PYTHON_LIBDIR="`$PYTHON -c 'from distutils import sysconfig; print sysconfig.get_config_var(\"LIBDIR\");'`"
|
|
|
|
# handle python being installed into /usr/local
|
|
AC_MSG_CHECKING([python libdir])
|
|
if test -z "`echo $PYTHON_LIBDIR | grep "/usr/lib"`" ; then
|
|
PYTHON_LDFLAGS="-L$PYTHON_LIBDIR $PYTHON_LDFLAGS"
|
|
LIBS="-L$PYTHON_LIBDIR $LIBS"
|
|
fi
|
|
AC_MSG_RESULT([$PYTHON_LIBDIR])
|
|
|
|
# check libpython
|
|
AC_CHECK_LIB([$PYTHON_LIB], [main], [has_libpython="yes"], [has_libpython="no"])
|
|
|
|
if test "$has_libpython" = "no" ; then
|
|
AS_IF([test "$with_python" = "try"],
|
|
[AC_MSG_WARN([$PYTHON_LIB is unusable])],
|
|
[AC_MSG_ERROR([$PYTHON_LIB is unusable])]
|
|
)
|
|
fi
|
|
|
|
# check whether system libpython is usable and has threads support
|
|
CFLAGS="$PYTHON_CFLAGS"
|
|
LIBS="$PYTHON_LDFLAGS"
|
|
AC_CHECK_FUNC([PyThread_init_thread], [python_has_threads="yes"], [python_has_threads="no"])
|
|
|
|
if test "$python_has_threads" = "no"; then
|
|
AS_IF([test "$with_python" = "try"],
|
|
[AC_MSG_WARN([Your python lacks threads support, can not build mod_python])],
|
|
[AC_MSG_ERROR([Your python lacks threads support, can not build mod_python])]
|
|
)
|
|
else
|
|
AC_MSG_NOTICE([Your python seems OK, do not forget to enable mod_python in modules.conf])
|
|
AC_SUBST([PYTHON_CFLAGS], [$PYTHON_CFLAGS])
|
|
AC_SUBST([PYTHON_LDFLAGS], [$PYTHON_LDFLAGS])
|
|
fi
|
|
else
|
|
AS_IF([test "$with_python" = "try"],
|
|
[AC_MSG_WARN([Could not find or use python distutils module: $python_result])],
|
|
[AC_MSG_ERROR([Could not find or use python distutils module: $python_result])]
|
|
)
|
|
fi
|
|
|
|
LIBS="$save_LIBS"
|
|
CFLAGS="$save_CFLAGS"
|
|
|
|
unset python_has_threads
|
|
unset python_has_distutils
|
|
unset python_result
|
|
else
|
|
AS_IF([test "$with_python" = "try"],
|
|
[AC_MSG_WARN([Could not find python, mod_python will not build, use --with-python to specify the location])],
|
|
[AC_MSG_ERROR([Could not find python, use --with-python to specify the location])]
|
|
)
|
|
fi
|
|
else
|
|
AC_MSG_WARN([python support disabled, building mod_python will fail!])
|
|
fi
|
|
|
|
CHECK_ERLANG
|
|
|
|
AC_CONFIG_FILES([Makefile
|
|
src/Makefile
|
|
src/mod/Makefile
|
|
src/mod/endpoints/mod_sofia/Makefile
|
|
src/mod/asr_tts/mod_unimrcp/Makefile
|
|
src/mod/event_handlers/mod_radius_cdr/Makefile
|
|
src/mod/languages/mod_java/Makefile
|
|
src/mod/languages/mod_python/Makefile
|
|
src/mod/event_handlers/mod_erlang_event/Makefile
|
|
src/include/switch_am_config.h
|
|
build/getsounds.sh
|
|
build/getlib.sh
|
|
build/modmake.rules
|
|
libs/xmlrpc-c/include/xmlrpc-c/config.h
|
|
libs/xmlrpc-c/xmlrpc_config.h
|
|
scripts/gentls_cert])
|
|
|
|
AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux])
|
|
AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin])
|
|
AM_CONDITIONAL(IS64BITLINUX, [test `uname -m` = x86_64])
|
|
|
|
#some vars to sub into the Makefile.am's
|
|
#LIBS+=> core.log || error="yes";if test -n "$(VERBOSE)" -o "$$error" = "yes";then cat core.log;fi;if test "$$error" = "yes";then exit 1;fi
|
|
LIBTOOL='`if test -z "$(VERBOSE)" ; then echo $(SHELL) $(switch_builddir)/quiet_libtool ;else echo $(switch_builddir)/libtool; fi;`'
|
|
TOUCH_TARGET='if test -f "$@";then touch "$@";fi;'
|
|
CONF_MODULES='\`grep -v "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`'
|
|
CONF_DISABLED_MODULES='\`grep "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`'
|
|
OUR_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-all ; done \`; echo $$mods `'
|
|
OUR_CLEAN_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-clean ; done \`; echo $$mods `'
|
|
OUR_INSTALL_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-install ; done\`; echo $$mods `'
|
|
OUR_UNINSTALL_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-uninstall ; done\`; echo $$mods `'
|
|
OUR_DISABLED_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-all ; done \`; echo $$mods `'
|
|
OUR_DISABLED_CLEAN_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-clean ; done \`; echo $$mods `'
|
|
OUR_DISABLED_INSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-install ; done\`; echo $$mods `'
|
|
OUR_DISABLED_UNINSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-uninstall ; done\`; echo $$mods `'
|
|
|
|
AM_MAKEFLAGS='"OUR_MODULES=$(OUR_MODS)" "OUR_CLEAN_MODULES=$(OUR_CLEAN_MODS)" "OUR_INSTALL_MODULES=$(OUR_INSTALL_MODS)" "OUR_UNINSTALL_MODULES=$(OUR_UNINSTALL_MODS)" "OUR_DISABLED_MODULES=$(OUR_DISABLED_MODS)" "OUR_DISABLED_CLEAN_MODULES=$(OUR_DISABLED_CLEAN_MODS)" "OUR_DISABLED_INSTALL_MODULES=$(OUR_DISABLED_INSTALL_MODS)" "OUR_DISABLED_UNINSTALL_MODULES=$(OUR_DISABLED_UNINSTALL_MODS)" `test -n "$(VERBOSE)" || echo -s`'
|
|
#AM_MAKEFLAGS='`test -n "$(VERBOSE)" || echo -s`'
|
|
AC_SUBST(LIBTOOL)
|
|
AC_SUBST(TOUCH_TARGET)
|
|
AC_SUBST(CONF_DISABLED_MODULES)
|
|
AC_SUBST(CONF_MODULES)
|
|
|
|
AC_SUBST(OUR_MODS)
|
|
AC_SUBST(OUR_CLEAN_MODS)
|
|
AC_SUBST(OUR_INSTALL_MODS)
|
|
AC_SUBST(OUR_UNINSTALL_MODS)
|
|
AC_SUBST(OUR_DISABLED_MODS)
|
|
AC_SUBST(OUR_DISABLED_CLEAN_MODS)
|
|
AC_SUBST(OUR_DISABLED_INSTALL_MODS)
|
|
AC_SUBST(OUR_DISABLED_UNINSTALL_MODS)
|
|
AC_SUBST(AM_MAKEFLAGS)
|
|
|
|
# Run configure in all the subdirs
|
|
AC_CONFIG_SUBDIRS(libs/srtp)
|
|
AC_CONFIG_SUBDIRS(libs/sqlite)
|
|
if test "$enable_core_libedit_support" = "yes" ; then
|
|
AC_CONFIG_SUBDIRS(libs/libedit)
|
|
fi
|
|
|
|
AC_CONFIG_SUBDIRS(libs/pcre)
|
|
AC_CONFIG_SUBDIRS(libs/apr)
|
|
AC_CONFIG_SUBDIRS(libs/apr-util)
|
|
AC_CONFIG_SUBDIRS(libs/voipcodecs)
|
|
AC_CONFIG_SUBDIRS(libs/ilbc)
|
|
AC_CONFIG_SUBDIRS(libs/curl)
|
|
AC_CONFIG_SUBDIRS(libs/iksemel)
|
|
AC_CONFIG_SUBDIRS(libs/js/nsprpub)
|
|
AC_CONFIG_SUBDIRS(libs/js)
|
|
AC_CONFIG_SUBDIRS(libs/libdingaling)
|
|
AC_CONFIG_SUBDIRS(libs/libsndfile)
|
|
AC_CONFIG_SUBDIRS(libs/sofia-sip)
|
|
AC_CONFIG_SUBDIRS(libs/speex)
|
|
AC_CONFIG_SUBDIRS(libs/portaudio)
|
|
AC_CONFIG_SUBDIRS(libs/openzap)
|
|
AC_CONFIG_SUBDIRS(libs/unimrcp)
|
|
AC_CHECK_LIB([tiff], [TIFFOpen], AC_CONFIG_SUBDIRS(libs/spandsp), , -lm)
|
|
|
|
AC_OUTPUT
|