]> sjero.net Git - wget/commitdiff
Detect dynamically linked OpenSSL libraries.
authorRay Satiro <raysatiro@yahoo.com>
Sat, 16 Apr 2011 16:49:07 +0000 (18:49 +0200)
committerGiuseppe Scrivano <gscrivano@gnu.org>
Sat, 16 Apr 2011 16:49:07 +0000 (18:49 +0200)
ChangeLog
configure.ac

index df365e7507e6491509cea469a5d7cc9e5995706a..8ad5c4a486c8a5a294c920b4333315cf4cf819c3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
 
        * bootstrap: Update from gnulib.
index e16f2cb310419eefff1fabdbf1020990d7b93fad..a755a9d42e3651f6f335004c20f21d345ba054c2 100644 (file)
@@ -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], [