match the change made to AST_EXT_LIB in asterisk-addons
[asterisk/asterisk.git] / configure.ac
index eea9178..237a137 100644 (file)
@@ -17,12 +17,29 @@ AC_CANONICAL_TARGET
 AC_CONFIG_SRCDIR([asterisk.c])
 
 # specify output header file
-AC_CONFIG_HEADER(include/autoconfig.h)
+AC_CONFIG_HEADER(include/asterisk/autoconfig.h)
 
 AC_COPYRIGHT("Asterisk")
 AC_REVISION($Revision$)
 
-AC_PREFIX_DEFAULT()
+case "${host}" in
+     *freebsd*)
+     ac_default_prefix=/usr/local
+     ;;
+     *)
+     ac_default_prefix=/usr
+     if test ${sysconfdir} = '${prefix}/etc'; then
+        sysconfdir=/etc
+     fi
+     if test ${mandir} = '${prefix}/man'; then
+        mandir=/usr/share/man
+     fi
+     ;;
+esac
+
+if test ${localstatedir} = '${prefix}/var'; then
+     localstatedir=/var
+fi
 
 ### ** Platform.
 AC_DEFINE_UNQUOTED(PBX_PLATFORM, "${host}",
@@ -75,6 +92,14 @@ case "${host}" in
     AC_DEFINE(FreeBSD, 1,
               [Define according to your operating system type.])
     PBX_OSTYPE="FreeBSD"
+    # XXX temporary hack to let FreeBSD use the default paths
+    # for local stuff. We need a better solution.
+    if test x"${CPPFLAGS}" = x; then
+        CPPFLAGS="-I /usr/local/include"
+    fi
+    if test x"${LDFLAGS}" = x; then
+        LDFLAGS="-L /usr/local/lib"
+    fi
     ;;
   *openbsd*)
     AC_DEFINE(OpenBSD, 1,
@@ -103,11 +128,22 @@ AC_SUBST(PBX_OSTYPE)
 AC_GNU_SOURCE
 
 AH_TOP(
+#ifndef ASTERISK_AUTOCONFIG_H
+#define ASTERISK_AUTOCONFIG_H
+
+#ifndef MENUSELECT
+#include "asterisk/buildopts.h"
+#endif
+
 #ifndef _REENTRANT
 #define _REENTRANT
 #endif
 )
 
+AH_BOTTOM(
+#endif
+)
+
 # cross-compile checks
 if test x"${build}" != x"${host}"; 
 then
@@ -157,37 +193,11 @@ AC_ARG_ENABLE(dev-mode,
        esac])
 AC_SUBST(AST_DEVMODE)
 
+# from here on down, library checking should be done in alphabetical order
+# by the --with option name, to make things easier for the users :-)
+
 AST_EXT_LIB([asound], [snd_spcm_init], [alsa/asoundlib.h], [ALSA], [Advanced Linux Sound Architecture], [-lm -ldl])
 AST_EXT_LIB([curses], [initscr], [curses.h], [CURSES], [curses], [])
-AST_EXT_LIB([mfcr2], [mfcr2_MakeCall], [libmfcr2.h], [MFCR2], [MFCR2])
-AST_EXT_LIB([nbs], [nbs_connect], [nbs.h], [NBS], [Network Broadcast Sound])
-AST_EXT_LIB([ncurses], [initscr], [curses.h], [NCURSES], [ncurses], [])
-AST_EXT_LIB([newt], [newtBell], [newt.h], [NEWT], [newt])
-AST_EXT_LIB([odbc], [SQLConnect], [sql.h], [UNIXODBC], [unixODBC])
-AST_EXT_LIB([ogg], [ogg_sync_init], [], [OGG], [OGG])
-AST_EXT_LIB([osptk], [OSPPCryptoDecrypt], [osp/osp.h], [OSPTK], [OSP Toolkit], [-lcrypto -lssl])
-AST_EXT_LIB([popt], [poptStrerror], [popt.h], [POPT], [popt])
-AST_EXT_LIB([pri], [pri_call], [libpri.h], [LIBPRI], [ISDN PRI])
-AST_EXT_LIB([speex], [speex_encode], [speex/speex.h], [SPEEX], [Speex], [-lm])
-AST_EXT_LIB([sqlite], [sqlite_exec], [sqlite.h], [SQLITE], [SQLite])
-AST_EXT_LIB([ssl], [ssl2_connect], [openssl/ssl.h], [OPENSSL], [OpenSSL], [-lcrypto])
-AST_EXT_LIB([tds], [tds_version], [tds.h], [FREETDS], [FreeTDS])
-AST_EXT_LIB([vorbis], [vorbis_info_init], [vorbis/codec.h], [VORBIS], [Vorbis], [-lm -lvorbisenc])
-AST_EXT_LIB([z], [compress], [zlib.h], [ZLIB], [zlib])
-
-if test "x${PBX_OSTYPE}" = "xLinux" ; then
-   AST_EXT_LIB([ossaudio], [oss_ioctl_mixer], [linux/soundcard.h], [OSS], [Open Sound System])
-elif test "x${PBX_OSTYPE}" = "xFreeBSD" ; then
-   AST_EXT_LIB([ossaudio], [oss_ioctl_mixer], [sys/soundcard.h], [OSS], [Open Sound System])
-else
-   AST_EXT_LIB([ossaudio], [oss_ioctl_mixer], [soundcard.h], [OSS], [Open Sound System])
-fi
-
-if test "x${PBX_OSTYPE}" = "xLinux" ; then
-   AST_EXT_LIB([tonezone], [tone_zone_find], [linux/zaptel.h], [ZAPTEL], [Zaptel])
-else
-   AST_EXT_LIB([tonezone], [tone_zone_find], [zaptel.h], [ZAPTEL], [Zaptel])
-fi
 
 GSM_INTERNAL="yes"
 GSM_SYSTEM="yes"
@@ -212,12 +222,16 @@ PBX_LIBgsm=0
 
 if test "${USE_GSM}" != "no"; then
    if test "${GSM_SYSTEM}" = "yes"; then
+      gsmlibdir=""
+      if test "x${GSM_DIR}" != "x"; then
+         gsmlibdir="-L${GSM_DIR} -L${GSM_DIR}/lib"
+      fi
       AC_CHECK_LIB([gsm], [gsm_create], AC_DEFINE_UNQUOTED([HAVE_GSM], 1,
-      [Define to indicate the GSM library]), [], -L${GSM_DIR}/lib)
+      [Define to indicate the GSM library]), [], ${gsmlibdir})
       if test "${ac_cv_lib_gsm_gsm_create}" = "yes"; then
         gsm_LIB="-lgsm"
         if test "x${GSM_DIR}" != "x"; then
-           gsm_LIB="-L${GSM_DIR}/lib ${gsm_LIB}"
+           gsm_LIB="${gsmlibdir} ${gsm_LIB}"
            gsm_INCLUDE="-I${GSM_DIR}/include"
         fi
         PBX_LIBgsm=1
@@ -241,6 +255,166 @@ AC_SUBST([gsm_LIB])
 AC_SUBST([gsm_INCLUDE])
 AC_SUBST([PBX_LIBgsm])
 
+AC_LANG_PUSH(C++)
+
+AC_ARG_WITH([kde], AC_HELP_STRING([--with-kde=PATH],[use KDE files in PATH]),[
+case ${withval} in
+     n|no)
+     USE_KDE=no
+     ;;
+     y|ye|yes)
+     KDE_MANDATORY="yes"
+     ;;
+     *)
+     KDE_DIR="${withval}"
+     KDE_MANDATORY="yes"
+     ;;
+esac
+])
+
+PBX_KDE=0
+if test "${USE_KDE}" != "no"; then
+   echo -n "checking for crashHandler in -lkdecore... "
+   saved_ldflags="${LDFLAGS}"
+   LDFLAGS="-I${KDE_DIR}/include ${LDFLAGS} -L${KDE_DIR} -L${KDE_DIR}/lib -lkdecore"
+       AC_LINK_IFELSE(
+       [
+               AC_LANG_PROGRAM(
+               [#include "kcrash.h"],
+               [KCrash::defaultCrashHandler(1);])
+       ],
+       [ac_cv_lib_kde_crash="yes"],
+       [ac_cv_lib_kde_crash="no"])
+               
+       LDFLAGS="${saved_ldflags}"
+       
+       if test "${ac_cv_lib_kde_crash}" = "yes"; then
+               AC_MSG_RESULT(yes) 
+       else
+               AC_MSG_RESULT(no) 
+       fi
+       
+       if test "${ac_cv_lib_kde_crash}" = "yes"; then
+               KDE_LIB="-lkdecore -lkdeui"
+               if test "${KDE_DIR}" != ""; then
+                       KDE_LIB="-L${KDE_DIR} -L${KDE_DIR}/lib ${KDE_LIB}"
+                       KDE_INCLUDE="-I${KDE_DIR}/include"
+                       AC_SUBST([KDE_INCLUDE])
+               fi
+               AC_SUBST([KDE_LIB])
+               PBX_KDE=1
+               AC_DEFINE([HAVE_LIBKDE], 1, [Define if your system has the KDE library])
+   elif test ! -z "${KDE_MANDATORY}"; 
+   then
+      echo "***"
+      echo "*** The KDE installation on this system appears to be broken."
+      echo "*** Either correct the installation, or run configure"
+      echo "*** including --without-kde."
+      exit 1
+   fi
+fi
+AC_SUBST([PBX_KDE])
+
+if test x"${PBX_KDE}" = x1; then
+       AC_PATH_TOOL(KDEINIT, kdeinit, No)
+       if test ! x"${KDEINIT}" = xNo; then
+       KDEDIR=$(${DIRNAME} ${KDEINIT})
+       KDEDIR=$(${DIRNAME} ${KDEDIR})
+       fi
+       AC_SUBST([KDEDIR])
+fi
+
+AC_LANG_POP
+
+AST_EXT_LIB([iksemel], [iks_start_sasl], [iksemel.h], [IKSEMEL], [Iksemel Jabber Library])
+AST_EXT_LIB([nbs], [nbs_connect], [nbs.h], [NBS], [Network Broadcast Sound])
+AST_EXT_LIB([ncurses], [initscr], [curses.h], [NCURSES], [ncurses], [])
+
+AC_ARG_WITH([netsnmp], AC_HELP_STRING([--with-netsnmp=PATH],[use Net-SNMP in PATH]),[
+case ${withval} in
+     n|no)
+     USE_NETSNMP=no
+     ;;
+     y|ye|yes)
+     NETSNMP_MANDATORY="yes"
+     ;;
+     *)
+     NETSNMP_DIR="${withval}"
+     NETSNMP_MANDATORY="yes"
+     ;;
+esac
+])
+
+PBX_NETSNMP=0
+NETSNMP_CONFIG=No
+if test "${USE_NETSNMP}" != "no"; then 
+   if test "x${NETSNMP_DIR}" != "x"; then
+      AC_PATH_TOOL([NETSNMP_CONFIG], [net-snmp-config], No, [${NETSNMP_DIR}/bin])
+      if test x"${NETSNMP_CONFIG}" = xNo; then
+         echo "***"
+         echo "*** net-snmp-config was not found in the path you specified:"
+         echo "*** ${NETSNMP_DIR}/bin"
+         echo "*** Either correct the installation, or run configure"
+         echo "*** including --without-netsnmp"
+         exit 1
+      fi
+   else
+      AC_PATH_TOOL([NETSNMP_CONFIG], [net-snmp-config], No)
+   fi
+fi
+
+if test x"${NETSNMP_CONFIG}" != xNo; then
+   NETSNMP_libs=`net-snmp-config --agent-libs`
+   
+   AC_CHECK_LIB([netsnmp], [snmp_register_callback], AC_DEFINE_UNQUOTED([HAVE_NETSNMP], 1,
+   [Define to indicate the Net-SNMP library]), [], ${NETSNMP_libs})
+
+   if test "${ac_cv_lib_netsnmp_snmp_register_callback}" = "yes"; then
+      NETSNMP_LIB="${NETSNMP_libs}"
+      PBX_NETSNMP=1
+   elif test ! -z "${NETSNMP_MANDATORY}";
+   then
+      echo "***"
+      echo "*** The Net-SNMP installation on this system appears to be broken."
+      echo "*** Either correct the installation, or run configure"
+      echo "*** including --without-netsnmp"
+      exit 1
+   fi
+elif test ! -z "${NETSNMP_MANDATORY}";
+then
+   echo "***"
+   echo "*** The Net-SNMP installation on this system appears to be broken."
+   echo "*** Either correct the installation, or run configure"
+   echo "*** including --without-netsnmp"
+   exit 1
+fi
+AC_SUBST([NETSNMP_LIB])
+AC_SUBST([PBX_NETSNMP])
+
+AST_EXT_LIB([newt], [newtBell], [newt.h], [NEWT], [newt])
+AST_EXT_LIB([odbc], [SQLConnect], [sql.h], [UNIXODBC], [unixODBC])
+AST_EXT_LIB([ogg], [ogg_sync_init], [], [OGG], [OGG])
+AST_EXT_LIB([osptk], [OSPPCryptoDecrypt], [osp/osp.h], [OSPTK], [OSP Toolkit], [-lcrypto -lssl])
+
+PBX_LIBOSS=0
+AC_CHECK_HEADER([linux/soundcard.h],
+               [
+               PBX_LIBOSS=1
+                AC_DEFINE_UNQUOTED([HAVE_OSS], 1, [Define to indicate the Open Sound System library])
+               ])
+if test "$PBX_LIBOSS" = "0"; then
+   AC_CHECK_HEADER([sys/soundcard.h],
+                   [
+                  PBX_LIBossaudio=1
+                  AC_DEFINE_UNQUOTED([HAVE_OSS], 1, [Define to indicate the Open Sound System library])
+                  ])
+fi
+if test "$PBX_LIBOSS" = "0"; then
+   AST_EXT_LIB([ossaudio], [oss_ioctl_mixer], [soundcard.h], [OSS], [Open Sound System])
+fi
+
+AC_SUBST([PBX_LIBOSS])
+
 AC_ARG_WITH([pq], AC_HELP_STRING([--with-pq=PATH],[use PostgreSQL files in PATH]),[
 case ${withval} in
      n|no)
@@ -293,73 +467,78 @@ if test x"${PG_CONFIG}" != xNo; then
       echo "*** including --without-pq"
       exit 1
    fi
+elif test ! -z "${PQ_MANDATORY}";
+then
+   echo "***"
+   echo "*** The PostgreSQL installation on this system appears to be broken."
+   echo "*** Either correct the installation, or run configure"
+   echo "*** including --without-pq"
+   exit 1
 fi
 AC_SUBST([pq_INCLUDE])
 AC_SUBST([pq_LIB])
 AC_SUBST([PBX_LIBpq])
 
-PBX_H323=0
-AC_CHECK_HEADER([h323.h], [PBX_H323=1], [])
-AC_SUBST(PBX_H323)
+AST_EXT_LIB([popt], [poptStrerror], [popt.h], [POPT], [popt])
+AST_EXT_LIB([pri], [pri_call], [libpri.h], [LIBPRI], [ISDN PRI])
 
-AC_CHECK_HEADER([linux/ixjuser.h], [PBX_IXJUSER=1],[PBX_IXJUSER=0])
-AC_SUBST(PBX_IXJUSER)
+PLATFORM_PTLIB="ptlib_${OSTYPE}_${MACHTYPE}_r"
 
-AC_ARG_WITH([vpb], AC_HELP_STRING([--with-vpb=PATH],[use vpb files in PATH]),[
+AC_ARG_WITH([pwlib], AC_HELP_STRING([--with-pwlib=PATH],[use PWLib files in PATH]),[
 case ${withval} in
      n|no)
-     USE_VPB=no
-     VPB_MANDATORY="yes"
+     USE_PWLIB=no
      ;;
      y|ye|yes)
      ;;
      *)
-     VPB_DIR="${withval}"
-     VPB_MANDATORY="yes"
+     PWLIB_DIR="${withval}"
      ;;
 esac
 ])
-if test "${USE_VPB}" != "no"; then
-   echo -n "checking for vpb_open in -lvpb..."
-   saved_ldflags="${LDFLAGS}"
-   LDFLAGS="${LDFLAGS} -L${VPB_DIR} -lvpb"
-   AC_LINK_IFELSE(
+if test "${USE_PWLIB}" != "no"; then
+       echo -n "checking for existence of pwlib... "
+       
+       saved_ldflags="${LDFLAGS}"
+       LDFLAGS="${LDFLAGS} -L${PWLIB_DIR} -l${PLATFORM_PTLIB}"
+       
+       AC_LINK_IFELSE(
        [
        AC_LANG_PROGRAM(
-       [#include "${VPB_DIR}vpbapi.h"],
-       [int q = vpb_open(0,0);])
+       [#include "${PWDIR_DIR}ptime.h"],
+       [int q = PTime::IsDaylightSaving();])
        ],
        [       AC_MSG_RESULT(yes) 
-               ac_cv_lib_vpb_vpb_open="yes" 
+               ac_cv_lib_pwlib="yes" 
        ],
        [       AC_MSG_RESULT(no) 
-               ac_cv_lib_vpb_vpb_open="no" 
+               ac_cv_lib_pwlib="no" 
        ]
        )
        LDFLAGS="${saved_ldflags}"
 
-       PBX_LIBvpb=0
-       if test "${ac_cv_lib_vpb_vpb_open}" = "yes"; then
-       VPB_LIB="-lvpb"
-       if test "${VPB_DIR}" != ""; then
-       VPB_LIB="-L${VPB_DIR}/lib ${VPB_LIB}"
-       VPB_INCLUDE="-I${VPB_DIR}/include"
-       AC_SUBST([VPB_INCLUDE])
-       fi
-       AC_SUBST([VPB_LIB])
-       PBX_LIBvpb=1
-       AC_DEFINE([HAVE_LIBVPB], 1, [Define if your system has the VoiceTronix (vpb) libraries.])
-   elif test ! -z "${VPB_MANDATORY}"; 
+       PBX_LIBPWLIB=0
+   
+   if test "${ac_cv_lib_pwlib}" = "yes"; then
+      PWLIB_LIB="-l{PLATFORM_PWLIB}"
+      if test "${PWLIB_DIR}" != ""; then
+         PWLIB_LIB="-L${PWLIB_DIR}/lib ${PWLIB_LIB}"
+                       PWLIB_INCLUDE="-I${PWLIB_DIR}/include"
+                       AC_SUBST([PWLIB_INCLUDE])
+      fi
+       AC_SUBST([PWLIB_LIB])
+       PBX_LIBPWLIB=1
+       AC_DEFINE([HAVE_LIBPWLIB], 1, [Define if your system has the pwlib libraries.])
+   elif test ! -z "${PWLIB_DIR}"; 
    then
       echo "***"
-      echo "*** The VoiceTronix (vpb) installation on this system appears to be broken."
+      echo "*** The PWLIB installation on this system appears to be broken."
       echo "*** Either correct the installation, or run configure"
-      echo "*** including --without-vpb."
+      echo "*** including --without-pwlib"
       exit 1
    fi
 fi
-AC_SUBST([PBX_LIBvpb])
-
+AC_SUBST([PBX_LIBPWLIB])
 
 AC_LANG_PUSH(C++)
 
@@ -367,9 +546,9 @@ AC_ARG_WITH([qt], AC_HELP_STRING([--with-qt=PATH],[use Qt files in PATH]),[
 case ${withval} in
      n|no)
      USE_QT=no
-     QT_MANDATORY="yes"
      ;;
      y|ye|yes)
+     QT_MANDATORY="yes"
      ;;
      *)
      QT_DIR="${withval}"
@@ -380,51 +559,64 @@ esac
 
 PBX_QT=0
 if test "${USE_QT}" != "no"; then
-   echo -n "checking for QDate in -lqt..."
-   saved_ldflags="${LDFLAGS}"
-   LDFLAGS="${LDFLAGS} -L${QT_DIR}/lib -lqt"
+   echo -n "checking for QDate in -lqt... "
+   saved_libs="${LIBS}"
+   saved_cppflags="${CPPFLAGS}"
+   if test "x${QT_DIR}" != "x"; then
+      LIBS="${LIBS} -L${QT_DIR}/lib"
+      CPPFLAGS="${CPPFLAGS} -I${QT_DIR}/include"
+   fi
+   LIBS="${LIBS} -lqt"
    qtlib="qt"
-       AC_LINK_IFELSE(
+   AC_LINK_IFELSE(
        [
                AC_LANG_PROGRAM(
-               [#include "${QT_DIR}include/qdatetime.h"],
+               [#include <qt3/qdatetime.h>],
                [QDate date();])
        ],
        [ac_cv_lib_qt_qt_date="yes"],
        [ac_cv_lib_qt_qt_date="no"])
-               
-       if test "${ac_cv_lib_qt_qt_date}" = "no"; then
-               qtlib="qt-mt"   
-       LDFLAGS="${saved_ldflags} -L${QT_DIR}/lib -lqt-mt"
-               AC_LINK_IFELSE(
+   LIBS="${saved_libs}"
+   CPPFLAGS="${saved_cppflags}"
+       
+   if test "${ac_cv_lib_qt_qt_date}" = "no"; then
+      saved_libs="${LIBS}"
+      saved_cppflags="${CPPFLAGS}"
+      if test "x${QT_DIR}" != "x"; then
+        LIBS="${LIBS} -L${QT_DIR}/lib"
+        CPPFLAGS="${CPPFLAGS} -I${QT_DIR}/include"
+      fi
+      LIBS="${LIBS} -lqt-mt"
+      qtlib="qt-mt"    
+      AC_LINK_IFELSE(
                [
                        AC_LANG_PROGRAM(
-                       [#include "${QT_DIR}include/qdatetime.h"],
+                       [#include <qt3/qdatetime.h>],
                        [QDate date();])
                ],
                [ac_cv_lib_qt_qt_date="yes"],
                [ac_cv_lib_qt_qt_date="no"])
-       fi      
-       
-       LDFLAGS="${saved_ldflags}"
-       
-       if test "${ac_cv_lib_qt_qt_date}" = "yes"; then
-               AC_MSG_RESULT(yes) 
-       else
-               AC_MSG_RESULT(no) 
-       fi
+      LIBS="${saved_libs}"
+      CPPFLAGS="${saved_cppflags}"
+   fi  
+
+   if test "${ac_cv_lib_qt_qt_date}" = "yes"; then
+      AC_MSG_RESULT(yes) 
+   else
+      AC_MSG_RESULT(no) 
+   fi
        
-       if test "${ac_cv_lib_qt_qt_date}" = "yes"; then
-               QT_LIB="-l${qtlib}"
-               if test "${QT_DIR}" != ""; then
-                       QT_LIB="-L${QT_DIR}/lib ${QT_LIB}"
-                       QT_INCLUDE="-I${QT_DIR}/include"
-                       AC_SUBST([QT_INCLUDE])
-               fi
-               AC_SUBST([QT_LIB])
-               PBX_QT=1
-               AC_DEFINE([HAVE_LIBQT], 1, [Define if your system has the Qt library])
-               AC_PATH_TOOL(QTMOC, moc, No)
+   if test "${ac_cv_lib_qt_qt_date}" = "yes"; then
+      QT_LIB="-l${qtlib}"
+      if test "${QT_DIR}" != ""; then
+        QT_LIB="-L${QT_DIR}/lib ${QT_LIB}"
+        QT_INCLUDE="-I${QT_DIR}/include"
+        AC_SUBST([QT_INCLUDE])
+      fi
+      AC_SUBST([QT_LIB])
+      PBX_QT=1
+      AC_DEFINE([HAVE_LIBQT], 1, [Define if your system has the Qt library])
+      AC_PATH_TOOL(QTMOC, moc, No)
    elif test ! -z "${QT_MANDATORY}"; 
    then
       echo "***"
@@ -436,158 +628,209 @@ if test "${USE_QT}" != "no"; then
 fi
 AC_SUBST([PBX_QT])
 
+AC_LANG_POP
 
+AST_EXT_LIB([radiusclient-ng], [rc_read_config], [radiusclient-ng.h], [RADIUSCLIENT], [Radius Client])
+AST_EXT_LIB([speex], [speex_encode], [speex/speex.h], [SPEEX], [Speex], [-lm])
+AST_EXT_LIB([sqlite], [sqlite_exec], [sqlite.h], [SQLITE], [SQLite])
+AST_EXT_LIB([ssl], [ssl2_connect], [openssl/ssl.h], [OPENSSL], [OpenSSL], [-lcrypto])
+AST_EXT_LIB([tds], [tds_version], [tds.h], [FREETDS], [FreeTDS])
 
+if test "${PBX_LIBFREETDS}" != "0";
+then
+    case `grep TDS_VERSION_NO ${FREETDS_DIR:-/usr/include}/tdsver.h` in
+    *0.63*)
+        FREETDS_INCLUDE="${FREETDS_INCLUDE} -DFREETDS_0_63"
+       ;;
+    *0.62*)
+        FREETDS_INCLUDE="${FREETDS_INCLUDE} -DFREETDS_0_62"
+       ;;
+    *)
+        FREETDS_INCLUDE="${FREETDS_INCLUDE} -DFREETDS_PRE_0_62"
+       ;;
+    esac
+fi
 
-AC_ARG_WITH([kde], AC_HELP_STRING([--with-kde=PATH],[use KDE files in PATH]),[
+AST_EXT_LIB([termcap], [tgetent], [], [TERMCAP], [Termcap])
+AST_EXT_LIB([tinfo], [tgetent], [], [TINFO], [Term Info])
+
+if test "${PBX_OSTYPE}" = "Linux" ; then
+  AST_EXT_LIB([tonezone], [tone_zone_find], [tonezone.h], [TONEZONE], [tonezone])
+else
+  AST_EXT_LIB([tonezone], [tone_zone_find], [tonezone.h], [TONEZONE], [tonezone], [-lm])
+fi
+
+AST_EXT_LIB([vorbis], [vorbis_info_init], [vorbis/codec.h], [VORBIS], [Vorbis], [-lm -lvorbisenc])
+
+AC_LANG_PUSH(C++)
+
+AC_ARG_WITH([vpb], AC_HELP_STRING([--with-vpb=PATH],[use vpb files in PATH]),[
 case ${withval} in
      n|no)
-     USE_KDE=no
-     KDE_MANDATORY="yes"
+     USE_VPB=no
      ;;
      y|ye|yes)
+     VPB_MANDATORY="yes"
      ;;
      *)
-     KDE_DIR="${withval}"
-     KDE_MANDATORY="yes"
+     VPB_DIR="${withval}"
+     VPB_MANDATORY="yes"
      ;;
 esac
 ])
-
-PBX_KDE=0
-if test "${USE_KDE}" != "no"; then
-   echo -n "checking for crashHandler in -lkdecore..."
-   saved_ldflags="${LDFLAGS}"
-   LDFLAGS="-I${KDE_DIR}/include ${LDFLAGS} -L${KDE_DIR}/lib -lkdecore"
-       AC_LINK_IFELSE(
+if test "${USE_VPB}" != "no"; then
+   echo -n "checking for vpb_open in -lvpb... "
+   saved_libs="${LIBS}"
+   saved_cppflags="${CPPFLAGS}"
+   if test "x${VPB_DIR}" != "x"; then
+      LIBS="${LIBS} -L${VPB_DIR} -L${VPB_DIR}/lib"
+      CPPFLAGS="${CPPFLAGS} -I${VPB_DIR}/include"
+   fi
+   LIBS="${LIBS} -lvpb -lpthread"
+   AC_LINK_IFELSE(
        [
-               AC_LANG_PROGRAM(
-               [#include "kcrash.h"],
-               [KCrash::defaultCrashHandler(1);])
+       AC_LANG_PROGRAM(
+       [#include <vpbapi.h>],
+       [int q = vpb_open(0,0);])
        ],
-       [ac_cv_lib_kde_crash="yes"],
-       [ac_cv_lib_kde_crash="no"])
-               
-       LDFLAGS="${saved_ldflags}"
-       
-       if test "${ac_cv_lib_kde_crash}" = "yes"; then
-               AC_MSG_RESULT(yes) 
-       else
-               AC_MSG_RESULT(no) 
+       [       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}"
+   PBX_LIBvpb=0
+   if test "${ac_cv_lib_vpb_vpb_open}" = "yes"; then
+       VPB_LIB="-lvpb"
+       if test "${VPB_DIR}" != ""; then
+          VPB_LIB="-L${VPB_DIR} -L${VPB_DIR}/lib ${VPB_LIB}"
+          VPB_INCLUDE="-I${VPB_DIR}/include"
+          AC_SUBST([VPB_INCLUDE])
        fi
-       
-       if test "${ac_cv_lib_kde_crash}" = "yes"; then
-               KDE_LIBS="-lkdecore -lkdeui"
-               if test "${KDE_DIR}" != ""; then
-                       KDE_LIBS="-L${KDE_DIR}/lib ${KDE_LIBS}"
-                       KDE_INCLUDE="-I${KDE_DIR}/include"
-                       AC_SUBST([KDE_INCLUDE])
-               fi
-               AC_SUBST([KDE_LIBS])
-               PBX_KDE=1
-               AC_DEFINE([HAVE_LIBKDE], 1, [Define if your system has the KDE library])
-   elif test ! -z "${KDE_MANDATORY}"; 
+       AC_SUBST([VPB_LIB])
+       PBX_LIBvpb=1
+       AC_DEFINE([HAVE_LIBVPB], 1, [Define if your system has the VoiceTronix (vpb) libraries.])
+   elif test ! -z "${VPB_MANDATORY}"; 
    then
       echo "***"
-      echo "*** The KDE installation on this system appears to be broken."
+      echo "*** The VoiceTronix (vpb) installation on this system appears to be broken."
       echo "*** Either correct the installation, or run configure"
-      echo "*** including --without-kde."
+      echo "*** including --without-vpb."
       exit 1
    fi
 fi
-AC_SUBST([PBX_KDE])
-
-if test x"${PBX_KDE}" = x1; then
-       AC_PATH_TOOL(KDEINIT, kdeinit, No)
-       if test ! x"${KDEINIT}" = xNo; then
-       KDEDIR=$(${DIRNAME} ${KDEINIT})
-       KDEDIR=$(${DIRNAME} ${KDEDIR})
-       fi
-       AC_SUBST([KDEDIR])
-fi
+AC_SUBST([PBX_LIBvpb])
 
 AC_LANG_POP
 
-PBX_GTK=0
-AC_CHECK_TOOL(GTKCONFIG, gtk-config, No)
-if test ! "x${GTKCONFIG}" = xNo; then
-   GTK_INCLUDE=$(${GTKCONFIG} --cflags gthread)
-   GTK_LIBS=$(${GTKCONFIG} --libs gthread)
-   PBX_GTK=1
-   AC_DEFINE([HAVE_GTK], 1, [Define if your system has the GTK libraries.])
-fi
-AC_SUBST(PBX_GTK)
-AC_SUBST(GTK_INCLUDE)
-AC_SUBST(GTK_LIBS)
-
-PLATFORM_PTLIB="ptlib_${OSTYPE}_${MACHTYPE}_r"
+AST_EXT_LIB([z], [compress], [zlib.h], [ZLIB], [zlib])
 
-AC_ARG_WITH([pwlib], AC_HELP_STRING([--with-pwlib=PATH],[use PWLib files in PATH]),[
+AC_ARG_WITH([zaptel], AC_HELP_STRING([--with-zaptel=PATH], [use Zaptel files in PATH]), [
 case ${withval} in
      n|no)
-     USE_PWLIB=no
+     USE_ZAPTEL=no
      ;;
      y|ye|yes)
+     ZAPTEL_MANDATORY=yes
      ;;
      *)
-     PWLIB_DIR="${withval}"
+     ZAPTEL_DIR="${withval}"
+     ZAPTEL_MANDATORY=yes
      ;;
 esac
 ])
-if test "${USE_PWLIB}" != "no"; then
-       echo -n "checking for existence of pwlib..."
-       
-       saved_ldflags="${LDFLAGS}"
-       LDFLAGS="${LDFLAGS} -L${PWLIB_DIR} -l${PLATFORM_PTLIB}"
-       
-       AC_LINK_IFELSE(
+
+PBX_ZAPTEL=0
+if test "${USE_ZAPTEL}" != "no"; then
+   echo -n "checking for zt_transcode_header in zaptel.h... "
+   saved_cppflags="${CPPFLAGS}"
+   if test "x${ZAPTEL_DIR}" != "x"; then
+      CPPFLAGS="${CPPFLAGS} -I${ZAPTEL_DIR}/include"
+   fi
+   AC_COMPILE_IFELSE(
        [
        AC_LANG_PROGRAM(
-       [#include "${PWDIR_DIR}ptime.h"],
-       [int q = PTime::IsDaylightSaving();])
+       [#include <zaptel.h>],
+       [struct zt_transcode_header test;])
        ],
        [       AC_MSG_RESULT(yes) 
-               ac_cv_lib_pwlib="yes" 
+               ac_cv_zaptel_h="yes" 
        ],
        [       AC_MSG_RESULT(no) 
-               ac_cv_lib_pwlib="no" 
+               ac_cv_zaptel_h="no" 
        ]
        )
-       LDFLAGS="${saved_ldflags}"
-
-       PBX_LIBPWLIB=0
-   
-   if test "${ac_cv_lib_pwlib}" = "yes"; then
-      PWLIB_LIB="-l{PLATFORM_PWLIB}"
-      if test "${PWLIB_DIR}" != ""; then
-         PWLIB_LIB="-L${PWLIB_DIR}/lib ${PWLIB_LIB}"
-                       PWLIB_INCLUDE="-I${PWLIB_DIR}/include"
-                       AC_SUBST([PWLIB_INCLUDE])
-      fi
-       AC_SUBST([PWLIB_LIB])
-       PBX_LIBPWLIB=1
-       AC_DEFINE([HAVE_LIBPWLIB], 1, [Define if your system has the pwlib libraries.])
-   elif test ! -z "${PWLIB_DIR}"; 
+   CPPFLAGS="${saved_cppflags}"
+   if test "${ac_cv_zaptel_h}" = "yes"; then
+       if test "${ZAPTEL_DIR}" != ""; then
+          ZAPTEL_INCLUDE="-I${ZAPTEL_DIR}/include"
+          AC_SUBST([ZAPTEL_INCLUDE])
+       fi
+       PBX_ZAPTEL=1
+       AC_DEFINE([HAVE_ZAPTEL], 1, [Define if your system has the Zaptel headers.])
+   elif test ! -z "${ZAPTEL_MANDATORY}"; 
    then
       echo "***"
-      echo "*** The PWLIB installation on this system appears to be broken."
+      echo "*** The Zaptel installation on this system appears to be broken."
       echo "*** Either correct the installation, or run configure"
-      echo "*** including --without-pwlib"
+      echo "*** including --without-zaptel."
       exit 1
    fi
 fi
-AC_SUBST([PBX_LIBPWLIB])
+
+AC_SUBST([PBX_ZAPTEL])
+
+EDITLINE_LIB=""
+if test "x$TERMCAP_LIB" != "x" ; then
+  EDITLINE_LIB="$TERMCAP_LIB"
+elif test "x$TINFO_LIB" != "x" ; then
+  EDITLINE_LIB="$TINFO_LIB"
+elif test "x$CURSES_LIB" != "x" ; then
+  EDITLINE_LIB="$CURSES_LIB"
+elif test "x$NCURSES_LIB" != "x" ; then
+  EDITLINE_LIB="$NCURSES_LIB"
+else
+  echo "*** termcap support not found"
+  exit 1
+fi
+AC_SUBST(EDITLINE_LIB)
+
+AC_CHECK_HEADER([h323.h], [PBX_H323=1], [PBX_H323=0])
+AC_SUBST(PBX_H323)
+
+AC_CHECK_HEADER([linux/ixjuser.h], [PBX_IXJUSER=1], [PBX_IXJUSER=0], [
+                                  #include <linux/version.h>
+                                  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+                                  #include <linux/compiler.h>
+                                  #endif
+                                  ])
+AC_SUBST(PBX_IXJUSER)
+
+PBX_GTK=0
+AC_CHECK_TOOL(GTKCONFIG, gtk-config, No)
+if test ! "x${GTKCONFIG}" = xNo; then
+   GTK_INCLUDE=$(${GTKCONFIG} --cflags gthread)
+   GTK_LIB=$(${GTKCONFIG} --libs gthread)
+   PBX_GTK=1
+   AC_DEFINE([HAVE_GTK], 1, [Define if your system has the GTK libraries.])
+fi
+AC_SUBST(PBX_GTK)
+AC_SUBST(GTK_INCLUDE)
+AC_SUBST(GTK_LIB)
 
 PBX_CURL=0
 AC_PATH_TOOL([CURL], [curl-config], No)
 if test ! x"${CURL}" = xNo; then
 # check for version
-   CURLLIBS=$(${CURL} --libs)
+   CURLLIB=$(${CURL} --libs)
    PBX_CURL=1
    AC_DEFINE([HAVE_CURL], 1, [Define if your system has the curl libraries.])
 fi
 AC_SUBST(PBX_CURL)
-AC_SUBST(CURLLIBS)
+AC_SUBST(CURLLIB)
 
 AC_FUNC_ALLOCA
 AC_HEADER_DIRENT
@@ -634,7 +877,20 @@ AC_FUNC_STRNLEN
 AC_FUNC_STRTOD
 AC_FUNC_UTIME_NULL
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS([atexit bzero dup2 endpwent floor ftruncate getcwd gethostbyname gethostname gettimeofday inet_ntoa isascii localtime_r memchr memmove memset mkdir munmap pow putenv re_comp regcomp rint select setenv socket sqrt strcasecmp strchr strcspn strdup strerror strncasecmp strndup strrchr strsep strspn strstr strtol unsetenv utime strtoq strcasestr asprintf vasprintf])
+AC_CHECK_FUNCS([atexit bzero dup2 endpwent floor ftruncate getcwd gethostbyname gethostname gettimeofday inet_ntoa isascii localtime_r memchr memmove memset mkdir munmap pow putenv re_comp regcomp rint select setenv socket sqrt strcasecmp strchr strcspn strdup strerror strncasecmp strndup strnlen strrchr strsep strspn strstr strtol unsetenv utime strtoq strcasestr asprintf vasprintf])
+
+echo -n "checking for compiler atomic operations... "
+AC_LINK_IFELSE(
+AC_LANG_PROGRAM([], [int foo1; int foo2 = __sync_fetch_and_add(&foo1, 1);]),
+AC_MSG_RESULT(yes)
+AC_DEFINE([HAVE_GCC_ATOMICS], 1, [Define to 1 if your GCC C compiler provides atomic operations.]),
+AC_MSG_RESULT(no)
+)
+
+AC_CHECK_HEADER([libkern/OSAtomic.h],
+                [AC_DEFINE_UNQUOTED([HAVE_OSX_ATOMICS], 1, [Define to 1 if OSX atomic operations are supported.])])
+
+AC_CHECK_SIZEOF(int)
 
 AC_CONFIG_FILES([build_tools/menuselect-deps makeopts])
 AC_OUTPUT
@@ -665,10 +921,9 @@ echo
 
 echo "Package configured for: "
 echo " OS type  : $PBX_OSTYPE"
-echo " host cpu : $host_cpu"
+echo " Host CPU : $host_cpu"
 if test "x${crossCompile}" = xYes; then
    echo ""
    echo " Cross Compilation = YES"
    echo " Target            = ${host}"
 fi
-