# -*- 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.pre1], BUG-REPORT-ADDRESS) AC_SUBST(SWITCH_VERSION_MAJOR, [1]) AC_SUBST(SWITCH_VERSION_MINOR, [0]) AC_SUBST(SWITCH_VERSION_MICRO, [pre1]) #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_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) moddir=$prefix/mod AC_SUBST(moddir) #Set default language AC_LANG_C # Checks for programs. AC_PROG_CC 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 # 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"]) # Optional Features AC_ARG_ENABLE(resample, [AC_HELP_STRING([--enable-resample],[build with embedded resamper])],[enable_resample="$enable_resample"],[enable_resample="yes"]) # We should add checking for out of tree libresample here RESAMPLE_LIB= RESAMPLE_CFLAGS= if test "${enable_resample}" = "yes"; then RESAMPLE_LIB="libs/libresample/libresample.la" RESAMPLE_CFLAGS="-I${switch_srcdir}/libs/libresample/include" else AC_DEFINE([DISABLE_RESAMPLE],[],[Disable the embedded resampler]) fi AC_SUBST(RESAMPLE_LIB) AC_SUBST(RESAMPLE_CFLAGS) AM_CONDITIONAL([USE_INTREE_RESAMPLE],[test "${enable_resample}" = "yes"]) # 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 -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 *cygwin* | *mingw*) DYNAMIC_LIB_EXTEN="dll" ;; *) DYNAMIC_LIB_EXTEN="so" ;; esac # Enable debugging AC_ARG_ENABLE(64, [AC_HELP_STRING([--enable-64],[build with 64 bit support])],[enable_64="$enable_64"],[enable_64="yes"]) # 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_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_LDFLAGS, -L/opt/csw/lib/amd64) 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) 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) ;; *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(SOLINK) AC_SUBST(DYNAMIC_LIB_EXTEN) # Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_CHECK_HEADERS([sys/types.h sys/resource.h sched.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_CHECK_FUNCS([sched_setscheduler setpriority setrlimit setgroups initgroups]) 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_DECL([RLIMIT_MEMLOCK], [AC_DEFINE([HAVE_RLIMIT_MEMLOCK],[1],[RLIMIT_MEMLOCK constant for setrlimit])],, [#ifdef HAVE_SYS_RESOURCE_H #include #endif]) AC_CHECK_DECL([SCHED_RR], [AC_DEFINE([HAVE_SCHED_RR],[1],[SCHED_RR constant for sched_setscheduler])],, [#ifdef HAVE_SCHED_H #include #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 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 ], 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 ], 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_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) 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-odbc-support, [ --enable-core-odbc-support Compile with ODBC Support],,[enable_core_odbc_support="no"]) AC_ARG_ENABLE(core-libedit-support, [ --enable-core-libedit-support Compile with libedit Support],,[enable_core_libedit_support="no"]) #AX_LIB_MYSQL([MINIMUM-VERSION]) AX_LIB_MYSQL 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"]) AC_CONFIG_FILES([Makefile src/Makefile src/mod/Makefile src/mod/event_handlers/mod_cdr/Makefile src/mod/endpoints/mod_sofia/Makefile src/mod/event_handlers/mod_radius_cdr/Makefile src/mod/languages/mod_java/Makefile src/include/switch_am_config.h build/getlib.sh build/modmake.rules]) 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|^.*/||" \`' 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 `' AM_MAKEFLAGS='"OUR_MODULES=$(OUR_MODS)" "OUR_CLEAN_MODULES=$(OUR_CLEAN_MODS)" "OUR_INSTALL_MODULES=$(OUR_INSTALL_MODS)" "OUR_UNINSTALL_MODULES=$(OUR_UNINSTALL_MODS)" `test -n "$(VERBOSE)" || echo -s`' #AM_MAKEFLAGS='`test -n "$(VERBOSE)" || echo -s`' AC_SUBST(LIBTOOL) AC_SUBST(TOUCH_TARGET) 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(AM_MAKEFLAGS) # Run configure in all the subdirs AC_CONFIG_SUBDIRS(libs/srtp) AC_CONFIG_SUBDIRS(libs/sqlite) AC_CONFIG_SUBDIRS(libs/libresample) AC_CONFIG_SUBDIRS(libs/pcre) AC_CONFIG_SUBDIRS(libs/apr) AC_CONFIG_SUBDIRS(libs/apr-util) AC_CONFIG_SUBDIRS(libs/codec/g7xx) AC_CONFIG_SUBDIRS(libs/codec/g726) AC_CONFIG_SUBDIRS(libs/codec/gsm) AC_CONFIG_SUBDIRS(libs/codec/ilbc) AC_CONFIG_SUBDIRS(libs/codec/lpc10) AC_CONFIG_SUBDIRS(libs/curl) AC_CONFIG_SUBDIRS(libs/iax) 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/libetpan) AC_CONFIG_SUBDIRS(libs/libsndfile) AC_CONFIG_SUBDIRS(libs/sofia-sip) AC_CONFIG_SUBDIRS(libs/speex) AC_CONFIG_SUBDIRS(libs/xmlrpc-c) AC_CONFIG_SUBDIRS(libs/portaudio) #AC_CONFIG_SUBDIRS(libs/openmrcp) AC_OUTPUT