Detect dynamically linked OpenSSL libraries.

This commit is contained in:
Ray Satiro 2011-04-16 18:49:07 +02:00 committed by Giuseppe Scrivano
parent f6e69baa3c
commit 918be06e06
2 changed files with 52 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2011-04-16 Ray Satiro <raysatiro@yahoo.com>
2011-04-16 Giuseppe Scrivano <gscrivano@gnu.org>
* configure.ac: Detect dynamically linked OpenSSL libraries under
mingw32.
2011-04-14 Giuseppe Scrivano <gscrivano@gnu.org> 2011-04-14 Giuseppe Scrivano <gscrivano@gnu.org>
* bootstrap: Update from gnulib. * bootstrap: Update from gnulib.

View File

@ -220,10 +220,12 @@ WGET_NANOSLEEP
WGET_POSIX_CLOCK WGET_POSIX_CLOCK
WGET_NSL_SOCKET WGET_NSL_SOCKET
AM_CONDITIONAL(HAVE_WINDRES, env windres > /dev/null)
dnl Deal with specific hosts dnl Deal with specific hosts
case $host_os in case $host_os in
*mingw32* ) *mingw32* )
LIBS+='-lws2_32 -lgdi32' LIBS+=' -lws2_32'
AC_LIBOBJ([mswindows]) AC_LIBOBJ([mswindows])
;; ;;
esac esac
@ -234,6 +236,9 @@ dnl Checks for libraries.
dnl dnl
AS_IF([test x"$with_ssl" = xopenssl], [ AS_IF([test x"$with_ssl" = xopenssl], [
dnl some versions of openssl use zlib compression
AC_CHECK_LIB(z, compress)
dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library
dnl doesn't record its dependency on libdl, so we need to make sure dnl doesn't record its dependency on libdl, so we need to make sure
dnl -ldl ends up in LIBS on systems that have it. Most OSes use dnl -ldl ends up in LIBS on systems that have it. Most OSes use
@ -242,11 +247,46 @@ AS_IF([test x"$with_ssl" = xopenssl], [
AC_CHECK_LIB(dl, shl_load) AC_CHECK_LIB(dl, shl_load)
]) ])
AC_CHECK_LIB(z, compress) case $host_os in
AC_CHECK_LIB(crypto, EVP_MD_CTX_init) *mingw32* )
AC_CHECK_LIB(ssl, ERR_func_error_string,, dnl prefer link to openssl dlls if possible. if not then fallback on static libs. if not then error
AC_MSG_ERROR([openssl development libraries not found]))
AC_LIBOBJ([openssl]) AC_CHECK_LIB(eay32, EVP_MD_CTX_init)
if test x"$ac_cv_lib_eay32_EVP_MD_CTX_init" != xno
then
AC_CHECK_LIB(ssl32, SSL_connect,,
AC_MSG_ERROR([openssl not found: shared lib eay32 found but ssl32 not found]))
AC_MSG_NOTICE([Enabling support for SSL via OpenSSL (shared)])
else
case $host_os in
*mingw32* )
LIBS+=' -lgdi32'
;;
esac
dnl fallback and test static libs
AC_CHECK_LIB(crypto, EVP_MD_CTX_init,,,)
if test x"$ac_cv_lib_crypto_EVP_MD_CTX_init" != xno
then
AC_CHECK_LIB(ssl, SSL_connect,, AC_MSG_ERROR([openssl not found]))
AC_MSG_NOTICE([Enabling support for SSL via OpenSSL])
else
AC_MSG_ERROR([openssl not found: shared (eay32/ssl32) or static (crypto/ssl) libs needed])
fi
fi
dnl add zdll lib as dep for above tests?
;;
*)
AC_CHECK_LIB(crypto, EVP_MD_CTX_init)
AC_CHECK_LIB(ssl, ERR_func_error_string,,
AC_MSG_ERROR([openssl development libraries not found]))
AC_MSG_NOTICE([Enabling support for SSL via OpenSSL (static)])
;;
esac
AC_LIBOBJ([openssl])
], [ ], [
# --with-ssl is not gnutls: check if it's no # --with-ssl is not gnutls: check if it's no
AS_IF([test x"$with_ssl" != xno], [ AS_IF([test x"$with_ssl" != xno], [