Multiple revisions 400508,400842-400843,400848
[asterisk/asterisk.git] / configure
index 0725492..0dca71f 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac Revision: 388770 .
+# From configure.ac Revision: 400385 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.69 for asterisk trunk.
 #
@@ -684,6 +684,7 @@ PKG_CONFIG_PATH
 PKG_CONFIG
 PBX_DLADDR
 PBX_IP_MTU_DISCOVER
+PBX_RTLD_NOLOAD
 PBX_GLOB_BRACE
 PBX_GLOB_NOMAGIC
 AST_RPATH
@@ -696,7 +697,6 @@ AST_TRAMPOLINES
 AST_DECLARATION_AFTER_STATEMENT
 GC_LDFLAGS
 GC_CFLAGS
-PBX_WEAKREF
 PBX_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
 PBX_PTHREAD_RWLOCK_INITIALIZER
 AST_ASTERISKSSL
@@ -967,6 +967,14 @@ PBX_LTDL
 LTDL_DIR
 LTDL_INCLUDE
 LTDL_LIB
+PBX_LIBXSLT_CLEANUP
+LIBXSLT_CLEANUP_DIR
+LIBXSLT_CLEANUP_INCLUDE
+LIBXSLT_CLEANUP_LIB
+PBX_LIBXSLT
+LIBXSLT_DIR
+LIBXSLT_INCLUDE
+LIBXSLT_LIB
 PBX_LIBXML2
 LIBXML2_DIR
 LIBXML2_INCLUDE
@@ -987,6 +995,10 @@ PBX_KQUEUE
 KQUEUE_DIR
 KQUEUE_INCLUDE
 KQUEUE_LIB
+PBX_URIPARSER
+URIPARSER_DIR
+URIPARSER_INCLUDE
+URIPARSER_LIB
 PBX_JANSSON
 JANSSON_DIR
 JANSSON_INCLUDE
@@ -1063,6 +1075,10 @@ PBX_CRYPTO
 CRYPTO_DIR
 CRYPTO_INCLUDE
 CRYPTO_LIB
+PBX_CRYPT
+CRYPT_DIR
+CRYPT_INCLUDE
+CRYPT_LIB
 PBX_CURSES
 CURSES_DIR
 CURSES_INCLUDE
@@ -1245,6 +1261,7 @@ with_bluetooth
 with_cap
 with_cpg
 with_curses
+with_crypt
 with_crypto
 with_dahdi
 with_avcodec
@@ -1263,11 +1280,13 @@ with_iodbc
 with_isdnnet
 with_jack
 with_jansson
+with_uriparser
 with_kqueue
 with_ldap
 with_libcurl
 with_libedit
 with_libxml2
+with_libxslt
 with_ltdl
 with_lua
 with_misdn
@@ -1976,6 +1995,7 @@ Optional Packages:
   --with-cap=PATH         use POSIX 1.e capabilities files in PATH
   --with-cpg=PATH         use Corosync files in PATH
   --with-curses=PATH      use curses files in PATH
+  --with-crypt=PATH       use password and data encryption files in PATH
   --with-crypto=PATH      use OpenSSL Cryptography files in PATH
   --with-dahdi=PATH       use DAHDI files in PATH
   --with-avcodec=PATH     use Ffmpeg and avcodec files in PATH
@@ -1996,12 +2016,14 @@ Optional Packages:
   --with-isdnnet=PATH     use ISDN4Linux files in PATH
   --with-jack=PATH        use Jack Audio Connection Kit files in PATH
   --with-jansson=PATH     use Jansson JSON library files in PATH
+  --with-uriparser=PATH   use uriparser library files in PATH
   --with-kqueue=PATH      use kqueue support files in PATH
   --with-ldap=PATH        use OpenLDAP files in PATH
   --with-libcurl=DIR      look for the curl library in DIR
   --with-libedit=PATH     use NetBSD Editline library files in PATH, use
                           'internal' Editline otherwise
   --with-libxml2=PATH     use LibXML2 files in PATH
+  --with-libxslt=PATH     use LibXSLT files in PATH
   --with-ltdl=PATH        use libtool files in PATH
   --with-lua=PATH         use Lua files in PATH
   --with-misdn=PATH       use mISDN user files in PATH
@@ -8384,6 +8406,38 @@ fi
 
 
 
+    CRYPT_DESCRIP="password and data encryption"
+    CRYPT_OPTION="crypt"
+    PBX_CRYPT=0
+
+# Check whether --with-crypt was given.
+if test "${with_crypt+set}" = set; then :
+  withval=$with_crypt;
+       case ${withval} in
+       n|no)
+       USE_CRYPT=no
+       # -1 is a magic value used by menuselect to know that the package
+       # was disabled, other than 'not found'
+       PBX_CRYPT=-1
+       ;;
+       y|ye|yes)
+       ac_mandatory_list="${ac_mandatory_list} CRYPT"
+       ;;
+       *)
+       CRYPT_DIR="${withval}"
+       ac_mandatory_list="${ac_mandatory_list} CRYPT"
+       ;;
+       esac
+
+fi
+
+
+
+
+
+
+
+
     CRYPTO_DESCRIP="OpenSSL Cryptography"
     CRYPTO_OPTION="crypto"
     PBX_CRYPTO=0
@@ -8972,6 +9026,38 @@ fi
 
 
 
+    URIPARSER_DESCRIP="uriparser library"
+    URIPARSER_OPTION="uriparser"
+    PBX_URIPARSER=0
+
+# Check whether --with-uriparser was given.
+if test "${with_uriparser+set}" = set; then :
+  withval=$with_uriparser;
+       case ${withval} in
+       n|no)
+       USE_URIPARSER=no
+       # -1 is a magic value used by menuselect to know that the package
+       # was disabled, other than 'not found'
+       PBX_URIPARSER=-1
+       ;;
+       y|ye|yes)
+       ac_mandatory_list="${ac_mandatory_list} URIPARSER"
+       ;;
+       *)
+       URIPARSER_DIR="${withval}"
+       ac_mandatory_list="${ac_mandatory_list} URIPARSER"
+       ;;
+       esac
+
+fi
+
+
+
+
+
+
+
+
     KQUEUE_DESCRIP="kqueue support"
     KQUEUE_OPTION="kqueue"
     PBX_KQUEUE=0
@@ -9477,6 +9563,50 @@ fi
 
 
 
+    LIBXSLT_DESCRIP="LibXSLT"
+    LIBXSLT_OPTION="libxslt"
+    PBX_LIBXSLT=0
+
+# Check whether --with-libxslt was given.
+if test "${with_libxslt+set}" = set; then :
+  withval=$with_libxslt;
+       case ${withval} in
+       n|no)
+       USE_LIBXSLT=no
+       # -1 is a magic value used by menuselect to know that the package
+       # was disabled, other than 'not found'
+       PBX_LIBXSLT=-1
+       ;;
+       y|ye|yes)
+       ac_mandatory_list="${ac_mandatory_list} LIBXSLT"
+       ;;
+       *)
+       LIBXSLT_DIR="${withval}"
+       ac_mandatory_list="${ac_mandatory_list} LIBXSLT"
+       ;;
+       esac
+
+fi
+
+
+
+
+
+
+
+
+LIBXSLT_CLEANUP_DESCRIP="LibXSLT Library Cleanup Function"
+LIBXSLT_CLEANUP_OPTION=libxslt
+LIBXSLT_CLEANUP_DIR=${LIBXSLT_DIR}
+
+PBX_LIBXSLT_CLEANUP=0
+
+
+
+
+
+
+
     LTDL_DESCRIP="libtool"
     LTDL_OPTION="ltdl"
     PBX_LTDL=0
@@ -12472,6 +12602,111 @@ if test "x$JANSSON_LIB" == "x"; then
   as_fn_error $? "*** JSON support not found (this typically means the libjansson development package is missing)" "$LINENO" 5
 fi
 
+
+if test "x${PBX_URIPARSER}" != "x1" -a "${USE_URIPARSER}" != "no"; then
+   pbxlibdir=""
+   # if --with-URIPARSER=DIR has been specified, use it.
+   if test "x${URIPARSER_DIR}" != "x"; then
+      if test -d ${URIPARSER_DIR}/lib; then
+         pbxlibdir="-L${URIPARSER_DIR}/lib"
+      else
+         pbxlibdir="-L${URIPARSER_DIR}"
+      fi
+   fi
+   pbxfuncname="uriParseUriA"
+   if test "x${pbxfuncname}" = "x" ; then   # empty lib, assume only headers
+      AST_URIPARSER_FOUND=yes
+   else
+      ast_ext_lib_check_save_CFLAGS="${CFLAGS}"
+      CFLAGS="${CFLAGS} "
+      as_ac_Lib=`$as_echo "ac_cv_lib_uriparser_${pbxfuncname}" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -luriparser" >&5
+$as_echo_n "checking for ${pbxfuncname} in -luriparser... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-luriparser ${pbxlibdir}  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ${pbxfuncname} ();
+int
+main ()
+{
+return ${pbxfuncname} ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_ac_Lib=yes"
+else
+  eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+  AST_URIPARSER_FOUND=yes
+else
+  AST_URIPARSER_FOUND=no
+fi
+
+      CFLAGS="${ast_ext_lib_check_save_CFLAGS}"
+   fi
+
+   # now check for the header.
+   if test "${AST_URIPARSER_FOUND}" = "yes"; then
+      URIPARSER_LIB="${pbxlibdir} -luriparser "
+      # if --with-URIPARSER=DIR has been specified, use it.
+      if test "x${URIPARSER_DIR}" != "x"; then
+         URIPARSER_INCLUDE="-I${URIPARSER_DIR}/include"
+      fi
+      URIPARSER_INCLUDE="${URIPARSER_INCLUDE} "
+      if test "xuriparser/Uri.h" = "x" ; then  # no header, assume found
+         URIPARSER_HEADER_FOUND="1"
+      else                             # check for the header
+         ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}"
+         CPPFLAGS="${CPPFLAGS} ${URIPARSER_INCLUDE}"
+         ac_fn_c_check_header_mongrel "$LINENO" "uriparser/Uri.h" "ac_cv_header_uriparser_Uri_h" "$ac_includes_default"
+if test "x$ac_cv_header_uriparser_Uri_h" = xyes; then :
+  URIPARSER_HEADER_FOUND=1
+else
+  URIPARSER_HEADER_FOUND=0
+fi
+
+
+         CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}"
+      fi
+      if test "x${URIPARSER_HEADER_FOUND}" = "x0" ; then
+         URIPARSER_LIB=""
+         URIPARSER_INCLUDE=""
+      else
+         if test "x${pbxfuncname}" = "x" ; then                # only checking headers -> no library
+            URIPARSER_LIB=""
+         fi
+         PBX_URIPARSER=1
+         cat >>confdefs.h <<_ACEOF
+#define HAVE_URIPARSER 1
+_ACEOF
+
+      fi
+   fi
+fi
+
+
+
 # Another mandatory item (unless it's explicitly disabled)
 # Check whether --enable-xmldoc was given.
 if test "${enable_xmldoc+set}" = set; then :
@@ -12647,6 +12882,216 @@ $as_echo "$as_me: *** Please run the 'configure' script with the '--disable-xmld
 $as_echo "$as_me: *** or install the 'libxml2' development package." >&6;}
                exit 1
        fi
+
+
+if test "x${PBX_LIBXSLT}" != "x1" -a "${USE_LIBXSLT}" != "no"; then
+   pbxlibdir=""
+   # if --with-LIBXSLT=DIR has been specified, use it.
+   if test "x${LIBXSLT_DIR}" != "x"; then
+      if test -d ${LIBXSLT_DIR}/lib; then
+         pbxlibdir="-L${LIBXSLT_DIR}/lib"
+      else
+         pbxlibdir="-L${LIBXSLT_DIR}"
+      fi
+   fi
+   pbxfuncname="xsltLoadStylesheetPI"
+   if test "x${pbxfuncname}" = "x" ; then   # empty lib, assume only headers
+      AST_LIBXSLT_FOUND=yes
+   else
+      ast_ext_lib_check_save_CFLAGS="${CFLAGS}"
+      CFLAGS="${CFLAGS} ${LIBXML2_INCLUDE}"
+      as_ac_Lib=`$as_echo "ac_cv_lib_xslt_${pbxfuncname}" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lxslt" >&5
+$as_echo_n "checking for ${pbxfuncname} in -lxslt... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lxslt ${pbxlibdir} ${LIBXML2_LIB} $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ${pbxfuncname} ();
+int
+main ()
+{
+return ${pbxfuncname} ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_ac_Lib=yes"
+else
+  eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+  AST_LIBXSLT_FOUND=yes
+else
+  AST_LIBXSLT_FOUND=no
+fi
+
+      CFLAGS="${ast_ext_lib_check_save_CFLAGS}"
+   fi
+
+   # now check for the header.
+   if test "${AST_LIBXSLT_FOUND}" = "yes"; then
+      LIBXSLT_LIB="${pbxlibdir} -lxslt ${LIBXML2_LIB}"
+      # if --with-LIBXSLT=DIR has been specified, use it.
+      if test "x${LIBXSLT_DIR}" != "x"; then
+         LIBXSLT_INCLUDE="-I${LIBXSLT_DIR}/include"
+      fi
+      LIBXSLT_INCLUDE="${LIBXSLT_INCLUDE} ${LIBXML2_INCLUDE}"
+      if test "xlibxslt/xsltInternals.h" = "x" ; then  # no header, assume found
+         LIBXSLT_HEADER_FOUND="1"
+      else                             # check for the header
+         ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}"
+         CPPFLAGS="${CPPFLAGS} ${LIBXSLT_INCLUDE}"
+         ac_fn_c_check_header_mongrel "$LINENO" "libxslt/xsltInternals.h" "ac_cv_header_libxslt_xsltInternals_h" "$ac_includes_default"
+if test "x$ac_cv_header_libxslt_xsltInternals_h" = xyes; then :
+  LIBXSLT_HEADER_FOUND=1
+else
+  LIBXSLT_HEADER_FOUND=0
+fi
+
+
+         CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}"
+      fi
+      if test "x${LIBXSLT_HEADER_FOUND}" = "x0" ; then
+         LIBXSLT_LIB=""
+         LIBXSLT_INCLUDE=""
+      else
+         if test "x${pbxfuncname}" = "x" ; then                # only checking headers -> no library
+            LIBXSLT_LIB=""
+         fi
+         PBX_LIBXSLT=1
+         cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXSLT 1
+_ACEOF
+
+      fi
+   fi
+fi
+
+
+
+if test "x${PBX_LIBXSLT_CLEANUP}" != "x1" -a "${USE_LIBXSLT_CLEANUP}" != "no"; then
+   pbxlibdir=""
+   # if --with-LIBXSLT_CLEANUP=DIR has been specified, use it.
+   if test "x${LIBXSLT_CLEANUP_DIR}" != "x"; then
+      if test -d ${LIBXSLT_CLEANUP_DIR}/lib; then
+         pbxlibdir="-L${LIBXSLT_CLEANUP_DIR}/lib"
+      else
+         pbxlibdir="-L${LIBXSLT_CLEANUP_DIR}"
+      fi
+   fi
+   pbxfuncname="xsltCleanupGlobals"
+   if test "x${pbxfuncname}" = "x" ; then   # empty lib, assume only headers
+      AST_LIBXSLT_CLEANUP_FOUND=yes
+   else
+      ast_ext_lib_check_save_CFLAGS="${CFLAGS}"
+      CFLAGS="${CFLAGS} ${LIBXML2_INCLUDE}"
+      as_ac_Lib=`$as_echo "ac_cv_lib_xslt_${pbxfuncname}" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lxslt" >&5
+$as_echo_n "checking for ${pbxfuncname} in -lxslt... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lxslt ${pbxlibdir} ${LIBXML2_LIB} $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ${pbxfuncname} ();
+int
+main ()
+{
+return ${pbxfuncname} ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_ac_Lib=yes"
+else
+  eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+  AST_LIBXSLT_CLEANUP_FOUND=yes
+else
+  AST_LIBXSLT_CLEANUP_FOUND=no
+fi
+
+      CFLAGS="${ast_ext_lib_check_save_CFLAGS}"
+   fi
+
+   # now check for the header.
+   if test "${AST_LIBXSLT_CLEANUP_FOUND}" = "yes"; then
+      LIBXSLT_CLEANUP_LIB="${pbxlibdir} -lxslt ${LIBXML2_LIB}"
+      # if --with-LIBXSLT_CLEANUP=DIR has been specified, use it.
+      if test "x${LIBXSLT_CLEANUP_DIR}" != "x"; then
+         LIBXSLT_CLEANUP_INCLUDE="-I${LIBXSLT_CLEANUP_DIR}/include"
+      fi
+      LIBXSLT_CLEANUP_INCLUDE="${LIBXSLT_CLEANUP_INCLUDE} ${LIBXML2_INCLUDE}"
+      if test "xlibxslt/xsltInternals.h" = "x" ; then  # no header, assume found
+         LIBXSLT_CLEANUP_HEADER_FOUND="1"
+      else                             # check for the header
+         ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}"
+         CPPFLAGS="${CPPFLAGS} ${LIBXSLT_CLEANUP_INCLUDE}"
+         ac_fn_c_check_header_mongrel "$LINENO" "libxslt/xsltInternals.h" "ac_cv_header_libxslt_xsltInternals_h" "$ac_includes_default"
+if test "x$ac_cv_header_libxslt_xsltInternals_h" = xyes; then :
+  LIBXSLT_CLEANUP_HEADER_FOUND=1
+else
+  LIBXSLT_CLEANUP_HEADER_FOUND=0
+fi
+
+
+         CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}"
+      fi
+      if test "x${LIBXSLT_CLEANUP_HEADER_FOUND}" = "x0" ; then
+         LIBXSLT_CLEANUP_LIB=""
+         LIBXSLT_CLEANUP_INCLUDE=""
+      else
+         if test "x${pbxfuncname}" = "x" ; then                # only checking headers -> no library
+            LIBXSLT_CLEANUP_LIB=""
+         fi
+         PBX_LIBXSLT_CLEANUP=1
+         cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBXSLT_CLEANUP 1
+_ACEOF
+
+      fi
+   fi
+fi
+
+
+
 fi
 
 # some embedded systems omit internationalization (locale) support
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_rwlock_timedwrlock() in pthread.h" >&5
-$as_echo_n "checking for pthread_rwlock_timedwrlock() in pthread.h... " >&6; }
 save_LIBS="$LIBS"
 save_CFLAGS="$CFLAGS"
 LIBS="$PTHREAD_LIBS $LIBS"
 CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_rwlock_timedwrlock() in pthread.h" >&5
+$as_echo_n "checking for pthread_rwlock_timedwrlock() in pthread.h... " >&6; }
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <pthread.h>
@@ -15387,6 +15833,43 @@ $as_echo "no" >&6; }
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
+
+# Some platforms define sem_init(), but only support sem_open(). joyous.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working unnamed semaphores" >&5
+$as_echo_n "checking for working unnamed semaphores... " >&6; }
+if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <semaphore.h>
+int
+main ()
+{
+sem_t sem; return sem_init(&sem, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define HAS_WORKING_SEMAPHORE 1" >>confdefs.h
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
 LIBS="$save_LIBS"
 CFLAGS="$save_CFLAGS"
 if test "${ac_cv_pthread_rwlock_timedwrlock}" = "yes"; then
@@ -16239,28 +16722,17 @@ CFLAGS="$saved_CFLAGS"
 
 
 
-# Support weak symbols on a platform specific basis.  The Mac OS X
-# (Darwin) support must be isolated from the other platforms because
-# it has caused other platforms to fail.
-#
-case "${OSARCH}" in
-       darwin*)
-       # Allow weak symbol support on Darwin platforms only because there
-       # is active community support for it.
-       # However, Darwin seems to break weak symbols for each new version.
-       #
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler 'attribute weak_import' support" >&5
-$as_echo_n "checking for compiler 'attribute weak_import' support... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler 'attribute may_alias' support" >&5
+$as_echo_n "checking for compiler 'attribute may_alias' support... " >&6; }
 saved_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
-PBX_WEAKREF=0
+
 
 if test "x" = "x"
 then
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
- void __attribute__((weak_import)) *test(void *muffin, ...) {return (void *) 0;}
+ void __attribute__((may_alias)) *test(void *muffin, ...) {return (void *) 0;}
 int
 main ()
 {
@@ -16272,10 +16744,10 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       PBX_WEAKREF=1
+
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_ATTRIBUTE_weak_import 1
+#define HAVE_ATTRIBUTE_may_alias 1
 _ACEOF
 
 else
@@ -16299,10 +16771,10 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       PBX_WEAKREF=1
+
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_ATTRIBUTE_weak_import 1
+#define HAVE_ATTRIBUTE_may_alias 1
 _ACEOF
 
 else
@@ -16318,21 +16790,17 @@ CFLAGS="$saved_CFLAGS"
 
 
 
-       # Several other platforms including Linux have GCC versions that
-       # define the weak attribute.  However, this attribute is only
-       # setup for use in the code by Darwin.
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler 'attribute weak' support" >&5
-$as_echo_n "checking for compiler 'attribute weak' support... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler 'attribute constructor' support" >&5
+$as_echo_n "checking for compiler 'attribute constructor' support... " >&6; }
 saved_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
-PBX_WEAKREF=0
+
 
 if test "x" = "x"
 then
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
- void __attribute__((weak)) *test(void *muffin, ...) {return (void *) 0;}
+ void __attribute__((constructor)) *test(void *muffin, ...) {return (void *) 0;}
 int
 main ()
 {
@@ -16344,10 +16812,10 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       PBX_WEAKREF=1
+
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_ATTRIBUTE_weak 1
+#define HAVE_ATTRIBUTE_constructor 1
 _ACEOF
 
 else
@@ -16371,82 +16839,10 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       PBX_WEAKREF=1
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_ATTRIBUTE_weak 1
-_ACEOF
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-CFLAGS="$saved_CFLAGS"
-
-
-       ;;
-       linux-gnu)
-       # Primarily support weak symbols on Linux platforms.
-       #
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler 'attribute weakref' support" >&5
-$as_echo_n "checking for compiler 'attribute weakref' support... " >&6; }
-saved_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
-PBX_WEAKREF=0
-
-if test "xweakref("foo")" = "x"
-then
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-static void __attribute__((weakref)) *test(void *muffin, ...) {return (void *) 0;}
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-       PBX_WEAKREF=1
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_ATTRIBUTE_weakref 1
-_ACEOF
 
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-static void __attribute__((weakref("foo"))) *test(void *muffin, ...) {return (void *) 0;}
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-       PBX_WEAKREF=1
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_ATTRIBUTE_weakref 1
+#define HAVE_ATTRIBUTE_constructor 1
 _ACEOF
 
 else
 CFLAGS="$saved_CFLAGS"
 
 
-       ;;
-       *)
-       # Allow weak symbols on other platforms.  However, any problems
-       # with this feature on other platforms must be fixed by the
-       # community.
-       #
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler 'attribute weakref' support" >&5
-$as_echo_n "checking for compiler 'attribute weakref' support... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler 'attribute destructor' support" >&5
+$as_echo_n "checking for compiler 'attribute destructor' support... " >&6; }
 saved_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -Wall -Wno-unused -Werror"
-PBX_WEAKREF=0
 
-if test "xweakref("foo")" = "x"
+
+if test "x" = "x"
 then
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-static void __attribute__((weakref)) *test(void *muffin, ...) {return (void *) 0;}
+ void __attribute__((destructor)) *test(void *muffin, ...) {return (void *) 0;}
 int
 main ()
 {
@@ -16490,10 +16880,10 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       PBX_WEAKREF=1
+
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_ATTRIBUTE_weakref 1
+#define HAVE_ATTRIBUTE_destructor 1
 _ACEOF
 
 else
@@ -16505,7 +16895,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-static void __attribute__((weakref("foo"))) *test(void *muffin, ...) {return (void *) 0;}
+ void __attribute__(()) *test(void *muffin, ...) {return (void *) 0;}
 int
 main ()
 {
@@ -16517,10 +16907,10 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-       PBX_WEAKREF=1
+
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_ATTRIBUTE_weakref 1
+#define HAVE_ATTRIBUTE_destructor 1
 _ACEOF
 
 else
@@ -16535,8 +16925,6 @@ fi
 CFLAGS="$saved_CFLAGS"
 
 
-       ;;
-esac
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -ffunction-sections support" >&5
 $as_echo_n "checking for -ffunction-sections support... " >&6; }
@@ -17031,18 +17419,65 @@ else
 $as_echo "no" >&6; }
 
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+
+    if test "x${PBX_GLOB_NOMAGIC}" != "x1"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_NOMAGIC in glob.h" >&5
+$as_echo_n "checking for GLOB_NOMAGIC in glob.h... " >&6; }
+       saved_cppflags="${CPPFLAGS}"
+       if test "x${GLOB_NOMAGIC_DIR}" != "x"; then
+           GLOB_NOMAGIC_INCLUDE="-I${GLOB_NOMAGIC_DIR}/include"
+       fi
+       CPPFLAGS="${CPPFLAGS} ${GLOB_NOMAGIC_INCLUDE}"
+
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+ #include <glob.h>
+int
+main ()
+{
+#if defined(GLOB_NOMAGIC)
+                               int foo = 0;
+                               #else
+                               int foo = bar;
+                               #endif
+                               0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+               PBX_GLOB_NOMAGIC=1
+
+$as_echo "#define HAVE_GLOB_NOMAGIC 1" >>confdefs.h
+
+
+
+else
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       CPPFLAGS="${saved_cppflags}"
+    fi
 
 
-    if test "x${PBX_GLOB_NOMAGIC}" != "x1"; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_NOMAGIC in glob.h" >&5
-$as_echo_n "checking for GLOB_NOMAGIC in glob.h... " >&6; }
+
+
+    if test "x${PBX_GLOB_BRACE}" != "x1"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_BRACE in glob.h" >&5
+$as_echo_n "checking for GLOB_BRACE in glob.h... " >&6; }
        saved_cppflags="${CPPFLAGS}"
-       if test "x${GLOB_NOMAGIC_DIR}" != "x"; then
-           GLOB_NOMAGIC_INCLUDE="-I${GLOB_NOMAGIC_DIR}/include"
+       if test "x${GLOB_BRACE_DIR}" != "x"; then
+           GLOB_BRACE_INCLUDE="-I${GLOB_BRACE_DIR}/include"
        fi
-       CPPFLAGS="${CPPFLAGS} ${GLOB_NOMAGIC_INCLUDE}"
+       CPPFLAGS="${CPPFLAGS} ${GLOB_BRACE_INCLUDE}"
 
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -17050,7 +17485,7 @@ $as_echo_n "checking for GLOB_NOMAGIC in glob.h... " >&6; }
 int
 main ()
 {
-#if defined(GLOB_NOMAGIC)
+#if defined(GLOB_BRACE)
                                int foo = 0;
                                #else
                                int foo = bar;
@@ -17064,9 +17499,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-               PBX_GLOB_NOMAGIC=1
+               PBX_GLOB_BRACE=1
 
-$as_echo "#define HAVE_GLOB_NOMAGIC 1" >>confdefs.h
+$as_echo "#define HAVE_GLOB_BRACE 1" >>confdefs.h
 
 
 
@@ -17082,22 +17517,22 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
 
-    if test "x${PBX_GLOB_BRACE}" != "x1"; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLOB_BRACE in glob.h" >&5
-$as_echo_n "checking for GLOB_BRACE in glob.h... " >&6; }
+    if test "x${PBX_RTLD_NOLOAD}" != "x1"; then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RTLD_NOLOAD in dlfcn.h" >&5
+$as_echo_n "checking for RTLD_NOLOAD in dlfcn.h... " >&6; }
        saved_cppflags="${CPPFLAGS}"
-       if test "x${GLOB_BRACE_DIR}" != "x"; then
-           GLOB_BRACE_INCLUDE="-I${GLOB_BRACE_DIR}/include"
+       if test "x${RTLD_NOLOAD_DIR}" != "x"; then
+           RTLD_NOLOAD_INCLUDE="-I${RTLD_NOLOAD_DIR}/include"
        fi
-       CPPFLAGS="${CPPFLAGS} ${GLOB_BRACE_INCLUDE}"
+       CPPFLAGS="${CPPFLAGS} ${RTLD_NOLOAD_INCLUDE}"
 
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
- #include <glob.h>
+ #include <dlfcn.h>
 int
 main ()
 {
-#if defined(GLOB_BRACE)
+#if defined(RTLD_NOLOAD)
                                int foo = 0;
                                #else
                                int foo = bar;
@@ -17111,9 +17546,9 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-               PBX_GLOB_BRACE=1
+               PBX_RTLD_NOLOAD=1
 
-$as_echo "#define HAVE_GLOB_BRACE 1" >>confdefs.h
+$as_echo "#define HAVE_RTLD_NOLOAD 1" >>confdefs.h
 
 
 
 
 fi
 
+if test "${PBX_BFD}" = "0"; then
+  # openSUSE requires -lz
+
+if test "x${PBX_BFD}" != "x1" -a "${USE_BFD}" != "no"; then
+   pbxlibdir=""
+   # if --with-BFD=DIR has been specified, use it.
+   if test "x${BFD_DIR}" != "x"; then
+      if test -d ${BFD_DIR}/lib; then
+         pbxlibdir="-L${BFD_DIR}/lib"
+      else
+         pbxlibdir="-L${BFD_DIR}"
+      fi
+   fi
+   pbxfuncname="bfd_check_format"
+   if test "x${pbxfuncname}" = "x" ; then   # empty lib, assume only headers
+      AST_BFD_FOUND=yes
+   else
+      ast_ext_lib_check_save_CFLAGS="${CFLAGS}"
+      CFLAGS="${CFLAGS} "
+      as_ac_Lib=`$as_echo "ac_cv_lib_bfd_${pbxfuncname}" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lbfd" >&5
+$as_echo_n "checking for ${pbxfuncname} in -lbfd... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbfd ${pbxlibdir} -ldl -liberty -lz $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ${pbxfuncname} ();
+int
+main ()
+{
+return ${pbxfuncname} ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_ac_Lib=yes"
+else
+  eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+  AST_BFD_FOUND=yes
+else
+  AST_BFD_FOUND=no
+fi
+
+      CFLAGS="${ast_ext_lib_check_save_CFLAGS}"
+   fi
+
+   # now check for the header.
+   if test "${AST_BFD_FOUND}" = "yes"; then
+      BFD_LIB="${pbxlibdir} -lbfd -ldl -liberty -lz"
+      # if --with-BFD=DIR has been specified, use it.
+      if test "x${BFD_DIR}" != "x"; then
+         BFD_INCLUDE="-I${BFD_DIR}/include"
+      fi
+      BFD_INCLUDE="${BFD_INCLUDE} "
+      if test "xbfd.h" = "x" ; then    # no header, assume found
+         BFD_HEADER_FOUND="1"
+      else                             # check for the header
+         ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}"
+         CPPFLAGS="${CPPFLAGS} ${BFD_INCLUDE}"
+         ac_fn_c_check_header_mongrel "$LINENO" "bfd.h" "ac_cv_header_bfd_h" "$ac_includes_default"
+if test "x$ac_cv_header_bfd_h" = xyes; then :
+  BFD_HEADER_FOUND=1
+else
+  BFD_HEADER_FOUND=0
+fi
+
+
+         CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}"
+      fi
+      if test "x${BFD_HEADER_FOUND}" = "x0" ; then
+         BFD_LIB=""
+         BFD_INCLUDE=""
+      else
+         if test "x${pbxfuncname}" = "x" ; then                # only checking headers -> no library
+            BFD_LIB=""
+         fi
+         PBX_BFD=1
+         cat >>confdefs.h <<_ACEOF
+#define HAVE_BFD 1
+_ACEOF
+
+      fi
+   fi
+fi
+
+
+fi
+
 if test "x${OSARCH}" = "xlinux-gnu" ; then
 
 if test "x${PBX_CAP}" != "x1" -a "${USE_CAP}" != "no"; then
@@ -27776,6 +28319,182 @@ $as_echo "$as_me: WARNING: *** Please install the SQLite3 development package."
        exit 1
 fi
 
+# Find crypt support
+# * -lcrypt on *NIX
+# * in libsystem on OS X
+
+if test "x${PBX_LIBCRYPT}" != "x1" -a "${USE_LIBCRYPT}" != "no"; then
+   pbxlibdir=""
+   # if --with-LIBCRYPT=DIR has been specified, use it.
+   if test "x${LIBCRYPT_DIR}" != "x"; then
+      if test -d ${LIBCRYPT_DIR}/lib; then
+         pbxlibdir="-L${LIBCRYPT_DIR}/lib"
+      else
+         pbxlibdir="-L${LIBCRYPT_DIR}"
+      fi
+   fi
+   pbxfuncname="crypt"
+   if test "x${pbxfuncname}" = "x" ; then   # empty lib, assume only headers
+      AST_LIBCRYPT_FOUND=yes
+   else
+      ast_ext_lib_check_save_CFLAGS="${CFLAGS}"
+      CFLAGS="${CFLAGS} "
+      as_ac_Lib=`$as_echo "ac_cv_lib_crypt_${pbxfuncname}" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lcrypt" >&5
+$as_echo_n "checking for ${pbxfuncname} in -lcrypt... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypt ${pbxlibdir}  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ${pbxfuncname} ();
+int
+main ()
+{
+return ${pbxfuncname} ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$as_ac_Lib=yes"
+else
+  eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+  AST_LIBCRYPT_FOUND=yes
+else
+  AST_LIBCRYPT_FOUND=no
+fi
+
+      CFLAGS="${ast_ext_lib_check_save_CFLAGS}"
+   fi
+
+   # now check for the header.
+   if test "${AST_LIBCRYPT_FOUND}" = "yes"; then
+      LIBCRYPT_LIB="${pbxlibdir} -lcrypt "
+      # if --with-LIBCRYPT=DIR has been specified, use it.
+      if test "x${LIBCRYPT_DIR}" != "x"; then
+         LIBCRYPT_INCLUDE="-I${LIBCRYPT_DIR}/include"
+      fi
+      LIBCRYPT_INCLUDE="${LIBCRYPT_INCLUDE} "
+      if test "xcrypt.h" = "x" ; then  # no header, assume found
+         LIBCRYPT_HEADER_FOUND="1"
+      else                             # check for the header
+         ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}"
+         CPPFLAGS="${CPPFLAGS} ${LIBCRYPT_INCLUDE}"
+         ac_fn_c_check_header_mongrel "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default"
+if test "x$ac_cv_header_crypt_h" = xyes; then :
+  LIBCRYPT_HEADER_FOUND=1
+else
+  LIBCRYPT_HEADER_FOUND=0
+fi
+
+
+         CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}"
+      fi
+      if test "x${LIBCRYPT_HEADER_FOUND}" = "x0" ; then
+         LIBCRYPT_LIB=""
+         LIBCRYPT_INCLUDE=""
+      else
+         if test "x${pbxfuncname}" = "x" ; then                # only checking headers -> no library
+            LIBCRYPT_LIB=""
+         fi
+         PBX_LIBCRYPT=1
+         cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBCRYPT 1
+_ACEOF
+
+      fi
+   fi
+fi
+
+
+ac_fn_c_check_func "$LINENO" "crypt" "ac_cv_func_crypt"
+if test "x$ac_cv_func_crypt" = xyes; then :
+  SYSCRYPT=true
+else
+  SYSCRYPT=""
+fi
+
+
+if test "x$LIBCRYPT_LIB" != "x" ; then
+    CRYPT_LIB="$LIBCRYPT_LIB"
+    CRYPT_INCLUDE="$LIBCRYPT_INCLUDE"
+
+$as_echo "#define HAVE_CRYPT 1" >>confdefs.h
+
+elif test "x$SYSCRYPT" != "x" ; then
+    CRYPT_LIB=""
+    CRYPT_INCLUDE=""
+
+$as_echo "#define HAVE_CRYPT 1" >>confdefs.h
+
+fi
+
+
+
+
+# Find crypt_r support
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt_r in -lcrypt" >&5
+$as_echo_n "checking for crypt_r in -lcrypt... " >&6; }
+if ${ac_cv_lib_crypt_crypt_r+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypt  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char crypt_r ();
+int
+main ()
+{
+return crypt_r ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_crypt_crypt_r=yes
+else
+  ac_cv_lib_crypt_crypt_r=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypt_crypt_r" >&5
+$as_echo "$ac_cv_lib_crypt_crypt_r" >&6; }
+if test "x$ac_cv_lib_crypt_crypt_r" = xyes; then :
+
+$as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h
+
+fi
+
+
 
 if test "x${PBX_CRYPTO}" != "x1" -a "${USE_CRYPTO}" != "no"; then
    pbxlibdir=""
@@ -32152,6 +32871,15 @@ echo "       \$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$.                "
 echo
 fi
 
+if test "x${AST_IODBC_FOUND}" = "xyes"; then
+       echo "WARNING: iodbc libs/headers found!"
+       echo
+       echo "  If you plan to use ODBC functionality, you should consider"
+       echo "  switching to unixodbc instead."
+       echo "  See: https://issues.asterisk.org/jira/browse/ASTERISK-22459"
+       echo
+fi
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: Package configured for: " >&5
 $as_echo "$as_me: Package configured for: " >&6;}
 { $as_echo "$as_me:${as_lineno-$LINENO}: OS type  : $host_os" >&5