Skip to content
Snippets Groups Projects
configure.ac 75.6 KiB
Newer Older
  • Learn to ignore specific revisions
  •    if test -n "${OPENAIS_DIR}"; then
          AIS_INCLUDE="${OPENAIS_INCLUDE}/openais"
          AIS_LIB="-lSaEvt ${OPENAIS_LIB}"
       else
          AIS_INCLUDE="-I/usr/include/openais"
    
          AIS_LIB="-lSaClm -lSaEvt -L/usr/lib/openais -L/usr/lib64/openais"
    
    AST_EXT_LIB_CHECK([SPEEX], [speex], [speex_encode], [speex/speex.h], [-lm])
    
    
    # See if the main speex library contains the preprocess functions
    
    AST_EXT_LIB_CHECK([SPEEX_PREPROCESS], [speex], [speex_preprocess_ctl], [speex/speex.h], [-lm])
    
    if test "${PBX_SPEEX_PREPROCESS}" = 1; then
       PBX_SPEEX_PREPROCESS=1
    fi
    
    
    AST_EXT_LIB_CHECK([SPEEXDSP], [speexdsp], [speex_preprocess_ctl], [speex/speex.h], [-lm])
    
    if test "${PBX_SPEEXDSP}" = 1; then
       PBX_SPEEX_PREPROCESS=1
    fi
    
    AC_SUBST(PBX_SPEEX_PREPROCESS)
    
    AST_EXT_LIB_CHECK([SQLITE], [sqlite], [sqlite_exec], [sqlite.h])
    
    
    AST_EXT_LIB_CHECK([SQLITE3], [sqlite3], [sqlite3_open], [sqlite3.h], [${PTHREAD_LIBS}], [${PTHREAD_CFLAGS}])
    
    if test "${PBX_SQLITE3}" != 1; then
    	AC_MSG_WARN(*** Asterisk now uses SQLite3 for the internal Asterisk database.)
    	AC_MSG_WARN(*** Please install the SQLite3 development package.)
    	exit 1
    fi
    
    
    AST_EXT_LIB_CHECK([CRYPTO], [crypto], [AES_encrypt], [openssl/aes.h])
    
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    if test "$PBX_CRYPTO" = "1";
    
    	AST_EXT_LIB_CHECK([OPENSSL], [ssl], [SSL_connect], [openssl/ssl.h], [-lcrypto])
    
    Kevin P. Fleming's avatar
    Kevin P. Fleming committed
    if test "$PBX_OPENSSL" = "1";
    then
    
        AST_CHECK_OSPTK([4], [0], [0])
    
    AST_EXT_LIB_CHECK([SRTP], [srtp], [srtp_init], [srtp/srtp.h])
    
    
    if test "$PBX_SRTP" = "1";
    then
        saved_libs="${LIBS}"
        saved_ldflags="${LDFLAGS}"
    
        saved_cflags="${CFLAGS}"
        LIBS="${LIBS} ${SRTP_LIB}"
    
        LDFLAGS="${LDFLAGS} -shared -fPIC"
    
        CFLAGS="${CFLAGS} ${SRTP_INCLUDE}"
    
        AC_MSG_CHECKING(for the ability of -lsrtp to be linked in a shared object)
        AC_LINK_IFELSE(
        [
            AC_LANG_PROGRAM(
                [#include <srtp/srtp.h>],
                [srtp_init();]
            )
        ],
        [ AC_MSG_RESULT(yes) ],
        [
            AC_MSG_RESULT(no)
    
            AC_MSG_WARN(***)
            AC_MSG_WARN(*** libsrtp could not be linked as a shared object.)
            AC_MSG_WARN(*** Try compiling libsrtp manually. Configure libsrtp)
            AC_MSG_WARN(*** with ./configure CFLAGS=-fPIC --prefix=/usr)
            AC_MSG_WARN(*** replacing /usr with the prefix of your choice.)
            AC_MSG_WARN(*** After re-installing libsrtp, re-run the Asterisk)
            AC_MSG_WARN(*** configure script.)
            AC_MSG_WARN(***)
            AC_MSG_WARN(*** If you do not need SRTP support re-run configure)
            AC_MSG_WARN(*** with the --without-srtp option.)
    
            exit 1
        ]
        )
        LIBS="${saved_libs}"
        LDFLAGS="${saved_ldflags}"
    
        CFLAGS="${saved_cflags}"
    
    AST_EXT_TOOL_CHECK([GMIME], [gmime-config], [], [], [#include <gmime/gmime.h>], [gboolean q = g_mime_check_version(0,0,0);])
    
    if test "x${PBX_GMIME}" = "x0" -a "${PKGCONFIG}" != "No"; then
    
    	# Later versions of GMime use pkg-config
    
    	for ver in 2.0 2.2 2.4; do
    		if ! ${PKGCONFIG} --exists gmime-$ver; then
    			continue
    
    		# If we got here, we have this version:
    		GMIME_INCLUDE=$(${PKGCONFIG} gmime-$ver --cflags 2>/dev/null)
    		GMIME_LIB=$(${PKGCONFIG} gmime-$ver --libs)
    		PBX_GMIME=1
    		AC_DEFINE([HAVE_GMIME], 1, [Define if your system has the GMIME libraries.])
    		break;
    	done
    
    AST_EXT_LIB_CHECK([HOARD], [hoard], [malloc], [])
    
    
    AST_EXT_LIB_CHECK([FREETDS], [sybdb], [dbinit], [sybdb.h])
    
    AC_CHECK_LIB([tonezone], [tone_zone_find_by_num], tonezone_does_not_need_lm=yes, tonezone_does_not_need_lm=no)
    
    if test "${tonezone_does_not_need_lm}" = "no" ; then
    
    AST_EXT_LIB_CHECK([TONEZONE], [tonezone], [tone_zone_find], [dahdi/tonezone.h], [${tonezone_extra} ${DAHDI_INCLUDE}])
    
    AST_EXT_LIB_CHECK([USB], [usb], [usb_init], [usb.h], [])
    
    
    if test "${OSARCH}" = "OpenBSD";
    then
    	AST_EXT_LIB_CHECK([VORBIS], [vorbis], [vorbis_info_init], [vorbis/codec.h], [-lm -lvorbisenc -logg])
    else
    	AST_EXT_LIB_CHECK([VORBIS], [vorbis], [vorbis_info_init], [vorbis/codec.h], [-lm -lvorbisenc])
    fi
    
    AC_LANG_PUSH(C++)
    
    if test "${USE_VPB}" != "no"; then
       AC_MSG_CHECKING(for vpb_open in -lvpb)
       saved_libs="${LIBS}"
       saved_cppflags="${CPPFLAGS}"
       if test "x${VPB_DIR}" != "x"; then
          if test -d ${VPB_DIR}/lib; then
             vpblibdir=${VPB_DIR}/lib
          else
             vpblibdir=${VPB_DIR}
          fi
          LIBS="${LIBS} -L${vpblibdir}"
          CPPFLAGS="${CPPFLAGS} -I${VPB_DIR}/include"
       fi
    
       CPPFLAGS="${CPPFLAGS} ${PTHREAD_CFLAGS}"
    
       AC_LINK_IFELSE(
    	[
    	AC_LANG_PROGRAM(
    	[#include <vpbapi.h>],
    	[int q = vpb_open(0,0);])
    	],
    
    	[	AC_MSG_RESULT(yes)
    		ac_cv_lib_vpb_vpb_open="yes"
    
    	[	AC_MSG_RESULT(no)
    		ac_cv_lib_vpb_vpb_open="no"
    
    	]
    	)
       LIBS="${saved_libs}"
       CPPFLAGS="${saved_cppflags}"
       if test "${ac_cv_lib_vpb_vpb_open}" = "yes"; then
    	VPB_LIB="-lvpb"
    	if test "${VPB_DIR}" != ""; then
    	   VPB_LIB="-L${vpblibdir}  ${VPB_LIB}"
    	   VPB_INCLUDE="-I${VPB_DIR}/include"
    	fi
    	PBX_VPB=1
    	AC_DEFINE([HAVE_VPB], 1, [Define if your system has the VoiceTronix API libraries.])
       fi
    fi
    
    AC_LANG_POP
    
    
    AST_EXT_LIB_CHECK([ZLIB], [z], [compress], [zlib.h])
    
    if test "x${PBX_UNIXODBC}" = "x1" -o "x${PBX_IODBC}" = "x1"; then
    	# Does ODBC support wide characters?
    	AC_MSG_CHECKING(whether ODBC has support for Unicode types)
    	AC_LINK_IFELSE(
    
    			[#include <sql.h>
    #include <sqlext.h>],
    
    		AC_MSG_RESULT(yes)
    			AC_DEFINE([HAVE_ODBC_WCHAR], [1], [Define to 1 if your ODBC library has wide (Unicode) types.]),
    		AC_MSG_RESULT(no)
    	)
    fi
    
    
    AC_CHECK_HEADER([h323.h], [PBX_H323=1], [PBX_H323=0])
    AC_SUBST(PBX_H323)
    
    
    AC_CHECK_HEADER([linux/compiler.h],
                    [AC_DEFINE_UNQUOTED([HAVE_LINUX_COMPILER_H], 1, [Define to 1 if your system has linux/compiler.h.])])
    
    
    AC_CHECK_HEADER([linux/ixjuser.h], [PBX_IXJUSER=1], [PBX_IXJUSER=0], [
    				   #include <linux/version.h>
    
    				   #ifdef HAVE_LINUX_COMPILER_H
    
    # Used in res/res_pktccops
    AST_C_DEFINE_CHECK([MSG_NOSIGNAL], [MSG_NOSIGNAL], [sys/socket.h])
    AST_C_DEFINE_CHECK([SO_NOSIGPIPE], [SO_NOSIGPIPE], [sys/socket.h])
    
    
    AST_EXT_TOOL_CHECK([SDL], [sdl-config])
    
    AST_EXT_LIB_CHECK([SDL_IMAGE], [SDL_image], [IMG_Load], [SDL_image.h], [${SDL_LIB}], [${SDL_INCLUDE}])
    
    AST_EXT_LIB_CHECK([FFMPEG], [avcodec], [sws_getContext], [ffmpeg/avcodec.h], [${PTHREAD_LIBS} -lz -lm], [${PTHREAD_CFLAGS}])
    
    Luigi Rizzo's avatar
    Luigi Rizzo committed
    # possible places for video4linux version 1
    AC_CHECK_HEADER([linux/videodev.h],
    	[AC_DEFINE_UNQUOTED([HAVE_VIDEODEV_H], 1, [Define to 1 if your system has linux/videodev.h.])])
    
    
    # possible places for X11
    AST_EXT_LIB_CHECK([X11], [X11], [XOpenDisplay], [X11/Xlib.h],,, [standard_path])
    AST_EXT_LIB_CHECK([X11], [X11], [XOpenDisplay], [X11/Xlib.h],, [-I/usr/X11R6/include], [X11R6])
    
    
    if test "${cross_compiling}" = "no";
    then
      AC_CHECK_FILE(/sbin/launchd, AC_DEFINE([HAVE_SBIN_LAUNCHD], 1, [Define to 1 if your system has /sbin/launchd.]))
    
    if test "${PKGCONFIG}" != "No"; then
    
       GTK2_INCLUDE=$(${PKGCONFIG} gtk+-2.0 --cflags 2>/dev/null)
    
       GTK2_LIB=$(${PKGCONFIG} gtk+-2.0 --libs)
       PBX_GTK2=1
       AC_DEFINE([HAVE_GTK2], 1, [Define if your system has the GTK2 libraries.])
    fi
    AC_SUBST(PBX_GTK2)
    AC_SUBST(GTK2_INCLUDE)
    AC_SUBST(GTK2_LIB)
    
    
    # build a GENERIC_ODBC result based on the presence of either UnixODBC (preferred)
    # or iODBC
    
    PBX_GENERIC_ODBC=0
    
    if test "${PBX_UNIXODBC}" = 1; then
       PBX_GENERIC_ODBC=1
       GENERIC_ODBC_LIB="${UNIXODBC_LIB}"
       GENERIC_ODBC_INCLUDE="${UNIXODBC_INCLUDE}"
    elif test "${PBX_IODBC}" = 1; then
       PBX_GENERIC_ODBC=1
       GENERIC_ODBC_LIB="${IODBC_LIB}"
       GENERIC_ODBC_INCLUDE="${IODBC_INCLUDE}"
    fi
    
    AC_SUBST([GENERIC_ODBC_LIB])
    AC_SUBST([GENERIC_ODBC_INCLUDE])
    AC_SUBST([PBX_GENERIC_ODBC])
    
    
    if test "${ac_cv_header_syslog_h}" = "yes"; then
       # syslog facilities
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_AUTH],     [LOG_AUTH],     [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_AUTHPRIV], [LOG_AUTHPRIV], [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_CRON],     [LOG_CRON],     [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_DAEMON],   [LOG_DAEMON],   [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_FTP],      [LOG_FTP],      [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_KERN],     [LOG_KERN],     [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_LPR],      [LOG_LPR],      [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_MAIL],     [LOG_MAIL],     [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_NEWS],     [LOG_NEWS],     [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_SYSLOG],   [LOG_SYSLOG],   [syslog.h])
       AST_C_DEFINE_CHECK([SYSLOG_FACILITY_LOG_UUCP],     [LOG_UUCP],     [syslog.h])
    
    if test -f makeopts; then
    
    	${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak
    
    	touch makeopts.acbak
    
    AC_CONFIG_FILES([build_tools/menuselect-deps makeopts channels/h323/Makefile])
    
    if test -f build_tools/menuselect-deps; then
        # extract old values of all PBX_ variables from menuselect-deps
        # and preserve them so that menuselect can determine whether
        # any previously-met dependencies are no longer met and warn
        # the user appropriately
        while IFS="=:" read var val old_val; do
            eval "PBX_${var}=\${PBX_${var}}:${val}"
        done < build_tools/menuselect-deps
    fi
    
    
    ${ac_cv_path_EGREP} 'CURSES|GTK2|OSARCH|NEWT' makeopts > makeopts.acbak2
    
    if test "x${ac_cv_path_CMP}" = "x:"; then
    
    	( cd `pwd`/menuselect && ./configure )
    else if ${ac_cv_path_CMP} -s makeopts.acbak makeopts.acbak2; then : ; else
    	( cd `pwd`/menuselect && ./configure )
    
    rm makeopts.acbak makeopts.acbak2
    
    if test "x${silent}" != "xyes" ; then
    
    echo
    echo "               .\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$=..      "
    echo "            .\$7\$7..          .7\$\$7:.    "
    echo "          .\$\$:.                 ,\$7.7   "
    echo "        .\$7.     7\$\$\$\$           .\$\$77  "
    echo "     ..\$\$.       \$\$\$\$\$            .\$\$\$7 "
    echo "    ..7\$   .?.   \$\$\$\$\$   .?.       7\$\$\$."
    echo "   \$.\$.   .\$\$\$7. \$\$\$\$7 .7\$\$\$.      .\$\$\$."
    echo " .777.   .\$\$\$\$\$\$77\$\$\$77\$\$\$\$\$7.      \$\$\$,"
    echo " \$\$\$~      .7\$\$\$\$\$\$\$\$\$\$\$\$\$7.       .\$\$\$."
    echo ".\$\$7          .7\$\$\$\$\$\$\$7:          ?\$\$\$."
    echo "\$\$\$          ?7\$\$\$\$\$\$\$\$\$\$I        .\$\$\$7 "
    echo "\$\$\$       .7\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$      :\$\$\$. "
    echo "\$\$\$       \$\$\$\$\$\$7\$\$\$\$\$\$\$\$\$\$\$\$    .\$\$\$.  "
    echo "\$\$\$        \$\$\$   7\$\$\$7  .\$\$\$    .\$\$\$.   "
    echo "\$\$\$\$             \$\$\$\$7         .\$\$\$.    "
    echo "7\$\$\$7            7\$\$\$\$        7\$\$\$      "
    echo " \$\$\$\$\$                        \$\$\$       "
    echo "  \$\$\$\$7.                       \$\$  (TM)     "
    echo "   \$\$\$\$\$\$\$.           .7\$\$\$\$\$\$  \$\$      "
    echo "     \$\$\$\$\$\$\$\$\$\$\$\$7\$\$\$\$\$\$\$\$\$.\$\$\$\$\$\$      "
    echo "       \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$.                "
    echo
    
    AC_MSG_NOTICE(Package configured for: )
    
    AC_MSG_NOTICE( OS type  : $host_os)
    
    AC_MSG_NOTICE( Host CPU : $host_cpu)
    
    AC_MSG_NOTICE( build-cpu:vendor:os: $build_cpu : $build_vendor : $build_os :)
    AC_MSG_NOTICE( host-cpu:vendor:os: $host_cpu : $host_vendor : $host_os :)
    
    if test "${cross_compiling}" = "yes"; then
    
       AC_MSG_NOTICE( Cross Compilation = YES)