From 918be06e06ba5b712299355884107b1bb2b5865a Mon Sep 17 00:00:00 2001 From: Ray Satiro Date: Sat, 16 Apr 2011 18:49:07 +0200 Subject: [PATCH] Detect dynamically linked OpenSSL libraries. --- ChangeLog | 6 ++++++ configure.ac | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 52 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index df365e75..8ad5c4a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2011-04-16 Ray Satiro +2011-04-16 Giuseppe Scrivano + + * configure.ac: Detect dynamically linked OpenSSL libraries under + mingw32. + 2011-04-14 Giuseppe Scrivano * bootstrap: Update from gnulib. diff --git a/configure.ac b/configure.ac index e16f2cb3..a755a9d4 100644 --- a/configure.ac +++ b/configure.ac @@ -220,10 +220,12 @@ WGET_NANOSLEEP WGET_POSIX_CLOCK WGET_NSL_SOCKET +AM_CONDITIONAL(HAVE_WINDRES, env windres > /dev/null) + dnl Deal with specific hosts case $host_os in *mingw32* ) - LIBS+='-lws2_32 -lgdi32' + LIBS+=' -lws2_32' AC_LIBOBJ([mswindows]) ;; esac @@ -234,6 +236,9 @@ dnl Checks for libraries. dnl 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 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 @@ -242,11 +247,46 @@ AS_IF([test x"$with_ssl" = xopenssl], [ AC_CHECK_LIB(dl, shl_load) ]) - AC_CHECK_LIB(z, compress) - 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_LIBOBJ([openssl]) + case $host_os in + *mingw32* ) + dnl prefer link to openssl dlls if possible. if not then fallback on static libs. if not then error + + 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 AS_IF([test x"$with_ssl" != xno], [ -- 2.39.2