summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2012-01-30 21:21:16 +0000
committerKevin P. Fleming <kpfleming@digium.com>2012-01-30 21:21:16 +0000
commit92ef8a6fe1fe2adb79f1e928ffaf909e9afade67 (patch)
treeab32b42a83836eb09cd59961e4e1a823077cdddd /configure
parent82f313b7b8e86eadd50a2eb69b608cf78f40fb82 (diff)
Address OpenSSL initialization issues when using third-party libraries.
When Asterisk is used with various third-party libraries (CURL, PostgresSQL, many others) that have the ability themselves to use OpenSSL, it is possible for conflicts to arise in how the OpenSSL libraries are initialized and shutdown. This patch addresses these conflicts by 'wrapping' the important functions from the OpenSSL libraries in a new shared library that is part of Asterisk itself, and is loaded in such a way as to ensure that *all* calls to these functions will be dispatched through the Asterisk wrapper functions, not the native functions. This new library is optional, but enabled by default. See the CHANGES file for documentation on how to disable it. Along the way, this patch also makes a few other minor changes: * Changes MODULES_DIR to ASTMODDIR throughout the build system, in order to more closely match what is used during run-time configuration. * Corrects some errors in the configure script where AC_CHECK_TOOLS was used instead of AC_PATH_PROG. * Adds a new variable for linker flags in the build system (DYLINK), used for producing true shared libraries (as opposed to the dynamically loadable modules that the build system produces for 'regular' Asterisk modules). * Moves the Makefile bits that handle installation and uninstallation of the main Asterisk binary into main/Makefile from the top-level Makefile. * Moves a couple of useful preprocessor macros from optional_api.h to asterisk.h. Review: https://reviewboard.asterisk.org/r/1006/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@353317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure355
1 files changed, 147 insertions, 208 deletions
diff --git a/configure b/configure
index 7ef662f75..748ccfbc0 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.ac Revision: 350732 .
+# From configure.ac Revision: 350839 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for asterisk trunk.
#
@@ -666,6 +666,7 @@ GC_CFLAGS
PBX_WEAKREF
PBX_PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
PBX_PTHREAD_RWLOCK_INITIALIZER
+AST_ASTERISKSSL
HAS_POLL
PBX_DYNAMIC_LIST
POW_LIB
@@ -1046,6 +1047,9 @@ MD5
SOXMIX
PBX_FLEX
PBX_BISON
+OPENSSL
+SHA1SUM
+LDCONFIG
DOWNLOAD
FETCH
XMLSTARLET
@@ -1065,10 +1069,6 @@ FLEX
CMP
BISON
GNU_LD
-ac_ct_OPENSSL
-OPENSSL
-ac_ct_SHA1SUM
-SHA1SUM
ac_ct_AR
AR
ac_ct_STRIP
@@ -1106,6 +1106,7 @@ astdbdir
astdatadir
astvarlibdir
astmandir
+astmoddir
astlibdir
astheaderdir
astetcdir
@@ -1248,6 +1249,7 @@ with_z
enable_xmldoc
enable_largefile
enable_internal_poll
+enable_asteriskssl
'
ac_precious_vars='build_alias
host_alias
@@ -1879,9 +1881,10 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-dev-mode Turn on developer mode
--enable-coverage Turn on code coverage tracking (for gcov)
- --disable-xmldoc Explicity disable XML documentation
+ --disable-xmldoc Explicitly disable XML documentation
--disable-largefile omit support for large files
--enable-internal-poll Use Asterisk's poll implementation
+ --disable-asteriskssl Disable Asterisk's SSL wrapper library
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -4515,7 +4518,8 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
astsbindir='${sbindir}'
astetcdir='${sysconfdir}/asterisk'
astheaderdir='${includedir}/asterisk'
-astlibdir='${libdir}/asterisk'
+astlibdir='${libdir}'
+astmoddir='${libdir}/asterisk/modules'
astmandir='${mandir}'
astvarlibdir='${localstatedir}/lib/asterisk'
astdatadir='${astvarlibdir}'
@@ -4561,7 +4565,7 @@ case "${host_os}" in
darwin*)
ac_default_prefix=/usr/local
if test ${prefix} = 'NONE'; then
- astlibdir='/Library/Application Support/Asterisk/Modules'
+ astmoddir='/Library/Application Support/Asterisk/Modules'
astvarlibdir='/Library/Application Support/Asterisk'
astlogdir=/Library/Logs/Asterisk
astvarrundir='/Library/Application Support/Asterisk/Run'
@@ -4578,6 +4582,7 @@ $as_echo "#define _DARWIN_UNLIMITED_SELECT 1" >>confdefs.h
astetcdir=/var/etc/asterisk
astsbindir=/opt/asterisk/sbin
astlibdir=/opt/asterisk/lib
+ astmoddir=/opt/asterisk/lib/modules
astheaderdir=/opt/asterisk/include
astmandir=/opt/asterisk/man
astvarlibdir=/var/opt/asterisk
@@ -6396,206 +6401,6 @@ esac
fi
fi
-if test -n "$ac_tool_prefix"; then
- for ac_prog in sha1sum
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_SHA1SUM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$SHA1SUM"; then
- ac_cv_prog_SHA1SUM="$SHA1SUM" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_SHA1SUM="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-SHA1SUM=$ac_cv_prog_SHA1SUM
-if test -n "$SHA1SUM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHA1SUM" >&5
-$as_echo "$SHA1SUM" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$SHA1SUM" && break
- done
-fi
-if test -z "$SHA1SUM"; then
- ac_ct_SHA1SUM=$SHA1SUM
- for ac_prog in sha1sum
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_SHA1SUM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_SHA1SUM"; then
- ac_cv_prog_ac_ct_SHA1SUM="$ac_ct_SHA1SUM" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_SHA1SUM="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_SHA1SUM=$ac_cv_prog_ac_ct_SHA1SUM
-if test -n "$ac_ct_SHA1SUM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_SHA1SUM" >&5
-$as_echo "$ac_ct_SHA1SUM" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_SHA1SUM" && break
-done
-
- if test "x$ac_ct_SHA1SUM" = x; then
- SHA1SUM="$ac_aux_dir/build_tools/sha1sum-sh"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- SHA1SUM=$ac_ct_SHA1SUM
- fi
-fi
-
-if test -n "$ac_tool_prefix"; then
- for ac_prog in openssl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OPENSSL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OPENSSL"; then
- ac_cv_prog_OPENSSL="$OPENSSL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_OPENSSL="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-OPENSSL=$ac_cv_prog_OPENSSL
-if test -n "$OPENSSL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSSL" >&5
-$as_echo "$OPENSSL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$OPENSSL" && break
- done
-fi
-if test -z "$OPENSSL"; then
- ac_ct_OPENSSL=$OPENSSL
- for ac_prog in openssl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OPENSSL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OPENSSL"; then
- ac_cv_prog_ac_ct_OPENSSL="$ac_ct_OPENSSL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_OPENSSL="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OPENSSL=$ac_cv_prog_ac_ct_OPENSSL
-if test -n "$ac_ct_OPENSSL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OPENSSL" >&5
-$as_echo "$ac_ct_OPENSSL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$ac_ct_OPENSSL" && break
-done
-
- if test "x$ac_ct_OPENSSL" = x; then
- OPENSSL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OPENSSL=$ac_ct_OPENSSL
- fi
-fi
-
GNU_LD=0
if test "x$with_gnu_ld" = "xyes" ; then
@@ -7391,6 +7196,129 @@ fi
fi
fi
+# Extract the first word of "ldconfig", so it can be a program name with args.
+set dummy ldconfig; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LDCONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LDCONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_LDCONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_LDCONFIG" && ac_cv_path_LDCONFIG=":"
+ ;;
+esac
+fi
+LDCONFIG=$ac_cv_path_LDCONFIG
+if test -n "$LDCONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDCONFIG" >&5
+$as_echo "$LDCONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "sha1sum", so it can be a program name with args.
+set dummy sha1sum; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SHA1SUM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $SHA1SUM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SHA1SUM="$SHA1SUM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_SHA1SUM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_SHA1SUM" && ac_cv_path_SHA1SUM="$ac_aux_dir/build_tools/sha1sum-sh"
+ ;;
+esac
+fi
+SHA1SUM=$ac_cv_path_SHA1SUM
+if test -n "$SHA1SUM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHA1SUM" >&5
+$as_echo "$SHA1SUM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+# Extract the first word of "openssl", so it can be a program name with args.
+set dummy openssl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_OPENSSL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $OPENSSL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_OPENSSL="$OPENSSL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_OPENSSL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_OPENSSL" && ac_cv_path_OPENSSL=":"
+ ;;
+esac
+fi
+OPENSSL=$ac_cv_path_OPENSSL
+if test -n "$OPENSSL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSSL" >&5
+$as_echo "$OPENSSL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bison that supports parse-param" >&5
$as_echo_n "checking for bison that supports parse-param... " >&6; }
@@ -14248,6 +14176,17 @@ fi
+# Check whether --enable-asteriskssl was given.
+if test "${enable_asteriskssl+set}" = set; then :
+ enableval=$enable_asteriskssl; case "${enableval}" in
+ y|ye|yes) AST_ASTERISKSSL=yes ;;
+ n|no) AST_ASTERISKSSL=no ;;
+ *) as_fn_error $? "bad value ${enableval} for --disable-asteriskssl" "$LINENO" 5 ;;
+ esac
+else
+ AST_ASTERISKSSL=yes
+fi
+
# https support (in main/http.c) uses funopen on BSD systems,