]> sjero.net Git - wget/blobdiff - configure.ac
bzr-version-gen: consider only the last tag.
[wget] / configure.ac
index e16f2cb310419eefff1fabdbf1020990d7b93fad..d47303a5c6ebecd3c4f6b69582d1d3220cedc848 100644 (file)
@@ -62,7 +62,8 @@ dnl Process features.
 dnl
 
 AC_ARG_WITH(ssl,
-[[  --without-ssl           disable SSL autodetection]])
+[[  --without-ssl           disable SSL autodetection
+  --with-ssl={gnutls,openssl} specify the SSL backend.  GNU TLS is the default.]])
 
 AC_ARG_ENABLE(opie,
 [  --disable-opie          disable support for opie or s/key FTP login],
@@ -223,7 +224,7 @@ WGET_NSL_SOCKET
 dnl Deal with specific hosts
 case $host_os in
   *mingw32* )
-    LIBS+='-lws2_32 -lgdi32'
+    LIBS+=' -lws2_32'
     AC_LIBOBJ([mswindows])
     ;;
 esac
@@ -234,6 +235,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 +246,42 @@ 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
+          LIBS+=' -lgdi32'
+          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], [
@@ -264,6 +299,8 @@ AS_IF([test x"$with_ssl" = xopenssl], [
     else
       AC_MSG_ERROR([--with-ssl was given, but GNUTLS is not available.])
     fi
+
+    AC_CHECK_FUNCS(gnutls_priority_set_direct)
   ]) # endif: --with-ssl == no?
 ]) # endif: --with-ssl == openssl?