forked from Mirrors/freeswitch
280 lines
7.8 KiB
Plaintext
280 lines
7.8 KiB
Plaintext
# -*- Autoconf -*-
|
|
# Process this file with autoconf to produce a configure script.
|
|
|
|
|
|
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
|
|
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_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
|
|
|
|
# Absolute source/build directory
|
|
switch_srcdir=`(cd $srcdir && pwd)`
|
|
switch_builddir=`pwd`
|
|
AC_SUBST(switch_srcdir)
|
|
AC_SUBST(switch_builddir)
|
|
|
|
#Set default language
|
|
AC_LANG_C
|
|
# Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_AWK
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_INSTALL
|
|
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
|
|
|
|
# Enable debugging
|
|
AC_ARG_ENABLE(debug,
|
|
[AC_HELP_STRING([--enable-debug],[build with debug information])],[enable_debug="$enable_debug"],[enable_debug="yes"])
|
|
|
|
if test "${enable_debug}" = "yes"; then
|
|
AC_DEFINE([DEBUG],[],[Enable extra debugging.])
|
|
AX_CFLAGS_WARN_ALL_ANSI
|
|
fi
|
|
|
|
AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
|
|
|
|
# set defaults for use on all platforms
|
|
SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir} -I${prefix}/include"
|
|
SWITCH_AM_LDFLAGS="-L${prefix}/lib -lm -L/usr/local/lib/db42 -L/usr/local/lib"
|
|
|
|
#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"
|
|
;;
|
|
*)
|
|
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
|
|
*-darwin*)
|
|
DYNAMIC_LIB_EXTEN="dylib"
|
|
;;
|
|
*cygwin* | *mingw*)
|
|
DYNAMIC_LIB_EXTEN="dll"
|
|
;;
|
|
*)
|
|
DYNAMIC_LIB_EXTEN="so"
|
|
;;
|
|
esac
|
|
|
|
# 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_LDFLAGS, -R${prefix}/lib)
|
|
elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -fPIC)
|
|
fi
|
|
|
|
# tweak platform specific flags
|
|
case "$host" in
|
|
*-darwin*)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
|
|
APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
|
|
;;
|
|
*-solaris2*)
|
|
APR_ADDTO(SWITCH_AM_CFLAGS, -DPATH_MAX=2048)
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(SWITCH_AM_CFLAGS)
|
|
AC_SUBST(SWITCH_AM_LDFLAGS)
|
|
AC_SUBST(SOLINK)
|
|
AC_SUBST(DYNAMIC_LIB_EXTEN)
|
|
|
|
# Checks for header files.
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS([sys/types.h])
|
|
|
|
# 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])
|
|
|
|
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"'
|
|
;;
|
|
*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_ARG_ENABLE(crash-protection,
|
|
[ --enable-crash-protection Compile with CRASH Protection],,[enable_crash_prot="no"])
|
|
|
|
AM_CONDITIONAL([CRASHPROT],[test "x$enable_crash_prot" != "xno"])
|
|
|
|
AC_CONFIG_FILES([Makefile
|
|
src/include/switch_am_config.h])
|
|
|
|
AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux])
|
|
AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin])
|
|
AM_CONDITIONAL(IS64BITLINUX, [test `uname -m` = x86_64])
|
|
|
|
AC_OUTPUT([src/include/switch_version.h])
|