123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480 |
- # -*- Autoconf -*-
- # Process this file with autoconf to produce a configure script.
- AC_PREREQ([2.59])
- AC_INIT([freetdm], [0.1], [bugs@freeswitch.org])
- AC_CONFIG_SRCDIR([src/ftdm_io.c])
- AC_CONFIG_AUX_DIR([build])
- AC_CONFIG_MACRO_DIR([build])
- AM_INIT_AUTOMAKE
- # >=automake-1.11
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
- # 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], [:])
- # Checks for programs.
- AC_PROG_CC
- AC_PROG_MAKE_SET
- AM_PROG_CC_C_O
- AC_PROG_LIBTOOL
- AC_PROG_INSTALL
- # NOTE: pkg-config is used to detect libisdn
- m4_ifdef([PKG_PROG_PKG_CONFIG],
- [PKG_PROG_PKG_CONFIG],
- [AC_MSG_WARN([pkg-config missing (required for libisdn detection)])]
- )
- AX_COMPILER_VENDOR
- # AC_PREFIX_DEFAULT does not get expanded until too late so we need
- # to do this to use prefix in this script
- AC_PREFIX_DEFAULT([/usr/local/freetdm])
- if test "x${prefix}" = "xNONE" ; then
- prefix='/usr/local/freetdm'
- fi
- # Absolute source/build directory
- FT_SRCDIR=`(cd $srcdir && pwd)`
- ft_builddir=`pwd`
- AC_SUBST([FT_SRCDIR])
- AC_SUBST([ft_builddir])
- if test "$sysconfdir" = "\${prefix}/etc" ; then
- confdir="$prefix/conf"
- else
- confdir="$sysconfdir"
- fi
- AC_SUBST([confdir])
- DEFAULT_INCLUDES="-I. -I./src/include -I\$(srcdir)"
- AC_SUBST([DEFAULT_INCLUDES])
- # Where to install the modules
- AC_ARG_WITH([modinstdir],
- [AS_HELP_STRING([--with-modinstdir=DIR], [Install modules into this location (default: ${prefix}/mod)])],
- [case "${withval}" in
- no|yes) AC_MSG_ERROR([Invalid value \"${withval}\", option requires a valid path]) ;;
- *) modinstdir="${withval}" ;;
- esac],
- [modinstdir="${prefix}/mod"]
- )
- AC_SUBST([modinstdir])
- # freetdm.pc pkgconfig file
- AC_ARG_WITH([pkgconfigdir],
- [AS_HELP_STRING([--with-pkgconfigdir=DIR], [Installation directory for pkgconfig file (default: ${libdir}/pkgconfig)])],
- [case "${withval}" in
- yes|no) AC_MSG_ERROR([Invalid value ${withval} for option --with-pkgconfigdir]) ;;
- *) pkgconfigdir="${withval}" ;;
- esac
- ],
- [pkgconfigdir="${libdir}/pkgconfig"]
- )
- AC_SUBST([pkgconfigdir])
- AC_ARG_ENABLE([enable_64],
- [AS_HELP_STRING([--enable-64], [Enable 64bit compilation])],
- [enable_64="${enableval}"],
- [enable_64="no"]
- )
- case "${ax_cv_c_compiler_vendor}" in
- gnu)
- COMP_VENDOR_CFLAGS="-ffast-math -Wall -Werror -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -O0"
- ;;
- sun)
- COMP_VENDOR_CFLAGS="-xc99=all -mt -xCC -xvpara"
- if test "$enable_64" != "no" ; then
- COMP_VENDOR_CFLAGS="-m64 $COMP_VENDOR_CFLAGS"
- fi
- ;;
- *)
- COMP_VENDOR_COMPAT_CFLAGS="-Wall -Werror -Wunused-variable -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes"
- COMP_VENDOR_CFLAGS="-std=c99 $COMP_VENDOR_COMPAT_CFLAGS"
- ;;
- esac
- AC_SUBST([COMP_VENDOR_COMPAT_CFLAGS])
- AC_SUBST([COMP_VENDOR_CFLAGS])
- # Enable debugging
- AC_ARG_ENABLE([debug],
- [AC_HELP_STRING([--enable-debug], [build with debug information])],
- [enable_debug="${enableval}"],
- [enable_debug="yes"]
- )
- if test "${enable_debug}" != "no"; then
- AC_DEFINE([DEBUG], [], [Enable extra debugging.])
- if test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
- COMP_VENDOR_CFLAGS="$COMP_VENDOR_CFLAGS -g -ggdb"
- fi
- fi
- AC_SUBST([COMP_VENDOR_CFLAGS])
- AC_CHECK_LIB([dl], [dlopen])
- AC_CHECK_LIB([pthread], [pthread_create])
- AC_CHECK_LIB([m], [cos])
- AC_CHECK_HEADERS([netdb.h sys/select.h execinfo.h])
- AC_CHECK_FUNC([gethostbyname_r],
- [], [AC_CHECK_LIB([nsl], [gethostbyname_r])]
- )
- if test "$ac_cv_func_gethostbyname_r" = "yes" -o "$ac_cv_lib_nsl_gethostbyname_r" = "yes"
- then
- AC_MSG_CHECKING([whether gethostbyname_r requires five arguments])
- ac_cv_func_gethostbyname_r_five_args="no"
- AC_TRY_COMPILE([#include <netdb.h>],
- [char *name;
- struct hostent *he, *res;
- char buffer[2048];
- int buflen = 2048;
- (void)gethostbyname_r(name, he, buffer, buflen, &res)],
- [ac_cv_func_gethostbyname_r_five_args="yes"
- AC_DEFINE([HAVE_GETHOSTBYNAME_R_FIVE], [1], [gethostbyname_r has five arguments])]
- )
- AC_MSG_RESULT([$ac_cv_func_gethostbyname_r_five_args])
- AC_DEFINE([HAVE_GETHOSTBYNAME_R], [1], [threadsafe gethostbyname])
- fi
- ##
- ## Modules and optional features
- ##
- AC_MSG_RESULT([${as_nl}<<>> Modules and optional features])
- ##
- # pritap (TODO: add checks)
- #
- HAVE_PRITAP="no"
- AC_ARG_WITH([pritap],
- [AS_HELP_STRING([--with-pritap], [Install ftmod_pritap])],
- [case "${withval}" in
- no) enable_pritap="no" ;;
- *) enable_pritap="yes" ;;
- esac],
- [enable_pritap="no"]
- )
- HAVE_PRITAP="${enable_pritap}"
- AM_CONDITIONAL([HAVE_PRITAP],[test "${enable_pritap}" = "yes"])
- ##
- # OpenR2 stack
- #
- HAVE_OPENR2="no"
- AC_CHECK_LIB([openr2], [openr2_context_set_io_type], [HAVE_OPENR2="yes"])
- AC_MSG_RESULT([checking whether to build ftmod_r2... ${HAVE_OPENR2}])
- AM_CONDITIONAL([HAVE_OPENR2], [test "${HAVE_OPENR2}" = "yes"])
- ##
- # WAT GSM stack
- #
- HAVE_WAT="no"
- AC_CHECK_LIB([wat], [wat_version], [HAVE_WAT="yes"])
- AC_MSG_RESULT([checking whether to build ftmod_wat... ${HAVE_WAT}])
- AM_CONDITIONAL([HAVE_WAT], [test "${HAVE_WAT}" = "yes"])
- ##
- # Digium libpri (TODO: add checks)
- #
- HAVE_LIBPRI="no"
- AC_ARG_WITH([libpri],
- [AS_HELP_STRING([--with-libpri@<:@=PREFIX@:>@], [Install ftmod_libpri])],
- [case "${withval}" in
- no|yes) with_libpri="${withval}" ;;
- *) AS_IF([test -d "${withval}"],
- [with_libpri="${withval}"],
- [AC_MSG_ERROR([Invalid argument for --with-libpri, \"${withval}\" is not a directory])]
- ) ;;
- esac],
- [with_libpri="no"]
- )
- if test "x${with_libpri}" != "xno"
- then
- save_LIBS="${LIBS}"
- save_CPPFLAGS="${CPPFLAGS}"
- save_LDFLAGS="${LDFLAGS}"
- LIBPRI_CPPFLAGS=""
- LIBPRI_LDFLAGS=""
- AC_MSG_RESULT([${as_nl}<<>> Digium libpri])
- AS_IF([test "x${with_libpri}" != "xyes"],
- [LIBPRI_CPPFLAGS="-I${with_libpri}/include"
- LIBPRI_LDFLAGS="-L${with_libpri}/lib"],
- )
- LDFLAGS="${save_LDFLAGS} ${LIBPRI_LDFLAGS}"
- CPPFLAGS="${save_CPPFLAGS} ${LIBPRI_CPPFLAGS}"
- LIBS="${LIBS} -lpri"
- AC_MSG_CHECKING([whether libpri is usable])
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [#include <libpri.h>],
- [const char *version = pri_get_version();
- (void)version;]
- )],
- [AC_MSG_RESULT([yes])
- HAVE_LIBPRI="yes"],
- [AC_MSG_RESULT([no])
- AC_MSG_ERROR([libpri not found or unusable (see config.log for details)])]
- )
- AC_MSG_CHECKING([whether libpri is too old])
- AC_PREPROC_IFELSE(
- [AC_LANG_PROGRAM(
- [#include <libpri.h>],
- [#if !defined(PRI_IO_FUNCS)
- #error "libpri is lacking PRI_IO_FUNCS"
- #elif !defined(PRI_NEW_SET_API)
- #error "libpri is lacking PRI_NEW_SET_API"
- #endif]
- )],
- [AC_MSG_RESULT([no])],
- [AC_MSG_RESULT([yes])
- AC_MSG_ERROR([Your version of libpri is too old (pre 1.2), please update!])]
- )
- AC_MSG_CHECKING([whether libpri has BRI support])
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [extern void pri_new_bri_cb(void);],
- [pri_new_bri_cb();]
- )],
- [AC_DEFINE([HAVE_LIBPRI_BRI], [1], [libpri has BRI support])
- AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- AC_MSG_NOTICE([You will need libpri-1.4.12_beta1 or newer for BRI support])]
- )
- AC_MSG_CHECKING([whether libpri has AOC event support])
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [extern void pri_aoc_events_enable(void);],
- [pri_aoc_events_enable();]
- )],
- [AC_DEFINE([HAVE_LIBPRI_AOC], [1], [libpri has AOC event support])
- AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- AC_MSG_NOTICE([You will need libpri-1.4.12_beta1 or newer for AOC event support])]
- )
- AC_MSG_CHECKING([whether libpri has pri_maintenance_service()])
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [extern int pri_maintenance_service(void);],
- [pri_maintenance_service();]
- )],
- [AC_DEFINE([HAVE_LIBPRI_MAINT_SERVICE], [1], [libpri has pri_maintenance_service()])
- AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])
- AC_MSG_NOTICE([You will need libpri-1.4.11 or newer for the ftdm libpri maintenance set of commands])]
- )
- # libpri is available, set variables for Makefile(.am)
- AC_SUBST([LIBPRI_LIBS], [-lpri])
- AC_SUBST([LIBPRI_LDFLAGS])
- AC_SUBST([LIBPRI_CPPFLAGS])
- LIBS="${save_LIBS}"
- LDFLAGS="${save_LDFLAGS}"
- CPPFLAGS="${save_CPPFLAGS}"
- fi
- AM_CONDITIONAL([HAVE_LIBPRI],[test "x${HAVE_LIBPRI}" = "xyes"])
- ##
- # Sangoma Wanpipe
- #
- HAVE_LIBSANGOMA="no"
- AC_MSG_RESULT([${as_nl}<<>> Sangoma Wanpipe])
- AC_CHECK_LIB([sangoma], [sangoma_span_chan_toif], [HAVE_LIBSANGOMA="yes"])
- AC_MSG_RESULT([checking whether to build ftmod_wanpipe... ${HAVE_LIBSANGOMA}])
- AM_CONDITIONAL([HAVE_LIBSANGOMA], [test "${HAVE_LIBSANGOMA}" = "yes"])
- ##
- # Sangoma ISDN stack
- #
- HAVE_SNG_ISDN="no"
- AC_MSG_RESULT([${as_nl}<<>> Sangoma ISDN stack])
- AC_CHECK_LIB([sng_isdn], [sng_isdn_init], [HAVE_SNG_ISDN="yes"])
- AC_MSG_RESULT([checking whether to build ftmod_sangoma_isdn... ${HAVE_SNG_ISDN}])
- AM_CONDITIONAL([HAVE_SNG_ISDN], [test "${HAVE_SNG_ISDN}" = "yes"])
- if test "${HAVE_SNG_ISDN}" = "yes"; then
- if test "${build}" = "${host}"
- then
- case "${host}" in
- x86_64-*)
- # X86_64 machines need additional flags when compiling against libsng_isdn
- CFLAGS="$CFLAGS -DBIT_64 -DALIGN_64BIT"
- ;;
- esac
- fi
- fi
- ##
- # Sangoma SS7 stack
- #
- HAVE_SNG_SS7="no"
- AC_MSG_RESULT([${as_nl}<<>> Sangoma SS7 stack])
- AC_CHECK_LIB([sng_ss7], [sng_isup_init_gen], [HAVE_SNG_SS7="yes"])
- AC_MSG_RESULT([checking whether to build ftmod_sangoma_ss7... ${HAVE_SNG_SS7}])
- AM_CONDITIONAL([HAVE_SNG_SS7], [test "${HAVE_SNG_SS7}" = "yes"])
- if test "${HAVE_SNG_SS7}" = "yes"; then
- if test "${build}" = "${host}"
- then
- case "${host}" in
- x86_64-*)
- # X86_64 machines need additional flags when compiling against libsng_isdn
- CFLAGS="$CFLAGS -DBIT_64 -DALIGN_64BIT"
- ;;
- esac
- fi
- fi
- ##
- # zlib (required for Sangoma SS7 Transparent IAM)
- #
- HAVE_ZLIB="no"
- AC_MSG_RESULT([${as_nl}<<>> zlib])
- AC_CHECK_LIB([z], [compress], [HAVE_ZLIB="yes"])
- AC_MSG_RESULT([checking whether zlib is installed... ${HAVE_ZLIB}])
- AM_CONDITIONAL([HAVE_ZLIB], [test "{HAVE_ZLIB]" = "yes"])
- if test "${HAVE_ZLIB}" = "yes"; then
- CFLAGS="$CFLAGS -DHAVE_ZLIB"
- fi
- ##
- # libisdn
- #
- HAVE_LIBISDN="no"
- AC_ARG_WITH([libisdn],
- [AS_HELP_STRING([--with-libisdn], [Install ftmod_isdn (libisdn stack)])],
- [case "${withval}" in
- no) with_libisdn="no" ;;
- *) with_libisdn="yes" ;;
- esac
- ],
- [with_libisdn="no"]
- )
- if test "${with_libisdn}" != "no"
- then
- AC_MSG_RESULT([${as_nl}<<>> ftmod_isdn (libisdn stack)])
- m4_ifdef([PKG_CHECK_MODULES],
- [PKG_CHECK_MODULES([libisdn],
- [libisdn >= 0.0.1],
- [AC_MSG_CHECKING([libisdn version])
- LIBISDN_VERSION="`${PKG_CONFIG} --modversion libisdn`"
- if test -z "${LIBISDN_VERSION}"; then
- AC_MSG_ERROR([Failed to retrieve libisdn version])
- fi
- AC_MSG_RESULT([${LIBISDN_VERSION}])
- # check features
- AC_MSG_CHECKING([for new experimental API])
- AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [#include <libisdn/version.h>
- #if !LIBISDN_FEATURE(API2)
- #error "libisdn API v2 not available"
- #endif
- ],
- [;]
- )],
- [AC_MSG_RESULT([yes])],
- [AC_MSG_RESULT([no])]
- )
- HAVE_LIBISDN="yes"
- AC_DEFINE([HAVE_LIBISDN], [1], [libisdn support])
- AC_SUBST([LIBISDN_CFLAGS], [${libisdn_CFLAGS}])
- AC_SUBST([LIBISDN_CPPFLAGS],[${libisdn_CPPFLAGS}])
- AC_SUBST([LIBISDN_LDFLAGS], [${libisdn_LDFLAGS}])
- AC_SUBST([LIBISDN_LIBS], [${libisdn_LIBS}])
- AC_SUBST([LIBISDN_VERSION])
- ],
- [AC_MSG_ERROR([Need libisdn-0.0.1 or higher])]
- )
- AX_LIB_PCAP],
- [AC_MSG_WARN([pkg-config missing (required for libisdn detection)])]
- )
- fi
- AM_CONDITIONAL([HAVE_LIBISDN], [test "${HAVE_LIBISDN}" = "yes"])
- ##
- # mISDN dependencies
- #
- HAVE_MISDN="no"
- AC_ARG_WITH([misdn],
- [AS_HELP_STRING([--with-misdn], [Install ftmod_misdn (mISDN I/O plugin)])],
- [case "${withval}" in
- no|yes) with_misdn="${withval}" ;;
- *) AC_MSG_ERROR([Invalid value \"${with_misdn}\" for --with-misdn option]) ;;
- esac],
- [with_misdn="auto"]
- )
- AS_IF([test "${with_misdn}" != "no"],
- [AC_MSG_RESULT([${as_nl}<<>> ftmod_misdn (Linux mISDN I/O plugin)])
- AC_CHECK_HEADER([mISDN/mISDNif.h],
- [HAVE_MISDN="yes"
- AC_CHECK_LIB([rt], [clock_gettime])],
- [AS_IF([test "${with_misdn}" = "yes"],
- [AC_MSG_ERROR([mISDN/mISDNif.h not found])],
- [AC_MSG_NOTICE([mISDN/mISDNif.h not found])]
- )],
- [#include <sys/socket.h>]
- )]
- )
- AM_CONDITIONAL([HAVE_MISDN], [test "${HAVE_MISDN}" = "yes"])
- AC_MSG_RESULT([${as_nl}<<>> Creating output files])
- AC_CONFIG_FILES([
- Makefile
- freetdm.pc
- mod_freetdm/Makefile
- ])
- AC_OUTPUT
- #
- # summary screen
- #
- AC_MSG_RESULT([
- ============================ FreeTDM configuration ============================
- + Modules
- Signalling:
- ftmod_analog....................... yes
- ftmod_analog_em.................... yes
- ftmod_isdn......................... ${HAVE_LIBISDN}
- ftmod_libpri....................... ${HAVE_LIBPRI}
- ftmod_sangoma_isdn................. ${HAVE_SNG_ISDN}
- ftmod_sangoma_ss7.................. ${HAVE_SNG_SS7}
- ftmod_r2........................... ${HAVE_OPENR2}
- ftmod_gsm.......................... ${HAVE_WAT}
- ftmod_pritap....................... ${HAVE_PRITAP}
- I/O:
- ftmod_zt........................... yes
- ftmod_wanpipe...................... ${HAVE_LIBSANGOMA}
- ftmod_misdn........................ ${HAVE_MISDN}
- ===============================================================================
- ])
|