]> 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.
 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
 
 WGET_POSIX_CLOCK
 WGET_NSL_SOCKET
 
+AM_CONDITIONAL(HAVE_WINDRES, env windres > /dev/null)
+
 dnl Deal with specific hosts
 case $host_os in
   *mingw32* )
 dnl Deal with specific hosts
 case $host_os in
   *mingw32* )
-    LIBS+='-lws2_32 -lgdi32'
+    LIBS+=' -lws2_32'
     AC_LIBOBJ([mswindows])
     ;;
 esac
     AC_LIBOBJ([mswindows])
     ;;
 esac
@@ -234,6 +236,9 @@ dnl Checks for libraries.
 dnl
 
 AS_IF([test x"$with_ssl" = xopenssl], [
 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
     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(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], [
 ], [
   # --with-ssl is not gnutls: check if it's no
   AS_IF([test x"$with_ssl" != xno], [