]> sjero.net Git - wget/blobdiff - configure.ac
bzr-version-gen: consider only the last tag.
[wget] / configure.ac
index 205b6533853aca5c1c48da214b194c6b04d1a217..d47303a5c6ebecd3c4f6b69582d1d3220cedc848 100644 (file)
@@ -62,7 +62,8 @@ dnl Process features.
 dnl
 
 AC_ARG_WITH(ssl,
 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],
 
 AC_ARG_ENABLE(opie,
 [  --disable-opie          disable support for opie or s/key FTP login],
@@ -223,16 +224,20 @@ WGET_NSL_SOCKET
 dnl Deal with specific hosts
 case $host_os in
   *mingw32* )
 dnl Deal with specific hosts
 case $host_os in
   *mingw32* )
-    AC_SUBST(W32LIBS, '-lws2_32 -lgdi32')
+    LIBS+=' -lws2_32'
     AC_LIBOBJ([mswindows])
     ;;
 esac
 
     AC_LIBOBJ([mswindows])
     ;;
 esac
 
+
 dnl
 dnl Checks for libraries.
 dnl
 
 AS_IF([test x"$with_ssl" = xopenssl], [
 dnl
 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
     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
@@ -241,29 +246,48 @@ AS_IF([test x"$with_ssl" = xopenssl], [
       AC_CHECK_LIB(dl, shl_load)
     ])
 
       AC_CHECK_LIB(dl, shl_load)
     ])
 
-    dnl Now actually check for -lssl
-    AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [
-  #include <openssl/ssl.h>
-  #include <openssl/x509.h>
-  #include <openssl/err.h>
-  #include <openssl/rand.h>
-  #include <openssl/des.h>
-  #include <openssl/md4.h>
-  #include <openssl/md5.h>
-    ], [SSL_library_init ()])
-    if test x"$LIBSSL" != x
-    then
-      AC_MSG_NOTICE([compiling in support for SSL via OpenSSL])
-      AC_LIBOBJ([openssl])
-    elif test x"$with_ssl" != x
-    then
-      AC_MSG_ERROR([--with-ssl=openssl was given, but SSL is not available.])
-    fi
+    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], [
     dnl Now actually check for -lssl
 
 ], [
   # --with-ssl is not gnutls: check if it's no
   AS_IF([test x"$with_ssl" != xno], [
     dnl Now actually check for -lssl
 
+    AC_CHECK_LIB(z, compress)
     AC_CHECK_LIB(gpg-error, gpg_err_init)
     AC_CHECK_LIB(gcrypt, gcry_control)
     AC_CHECK_LIB(gnutls, main)
     AC_CHECK_LIB(gpg-error, gpg_err_init)
     AC_CHECK_LIB(gcrypt, gcry_control)
     AC_CHECK_LIB(gnutls, main)
@@ -275,6 +299,8 @@ AS_IF([test x"$with_ssl" = xopenssl], [
     else
       AC_MSG_ERROR([--with-ssl was given, but GNUTLS is not available.])
     fi
     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?
 
   ]) # endif: --with-ssl == no?
 ]) # endif: --with-ssl == openssl?