1
0
mirror of https://github.com/moparisthebest/wget synced 2024-07-03 16:38:41 -04:00

use pkg-config to check openssl deps if available

Newer versions of these packages ship with pkg-config files, so if we can
detect it via those, do so.  If that fails, fall back to the old methods.
This commit is contained in:
Mike Frysinger 2014-10-27 14:55:24 -04:00 committed by Giuseppe Scrivano
parent 47d0d4c331
commit 5ae5d2eaeb
2 changed files with 55 additions and 44 deletions

View File

@ -9,6 +9,9 @@
* configure.ac: Use pkg-config to check for pcre presence and * configure.ac: Use pkg-config to check for pcre presence and
fallback to the previous code if that doesn't work. fallback to the previous code if that doesn't work.
* configure.ac: Use pkg-config to check for openssl presence and
fallback to the previous code if that doesn't work.
2014-07-28 Ángel González <keisial@gmail.com> 2014-07-28 Ángel González <keisial@gmail.com>
* contrib: Created contrib folder. * contrib: Created contrib folder.
* contrib/tsocked-wget: Added wrapper for usage with socks proxy. * contrib/tsocked-wget: Added wrapper for usage with socks proxy.

View File

@ -277,42 +277,50 @@ AS_IF([test x"$with_zlib" != xno], [
]) ])
AS_IF([test x"$with_ssl" = xopenssl], [ AS_IF([test x"$with_ssl" = xopenssl], [
dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library PKG_CHECK_MODULES([OPENSSL], [openssl], [
dnl doesn't record its dependency on libdl, so we need to make sure AC_MSG_NOTICE([compiling in support for SSL via OpenSSL])
dnl -ldl ends up in LIBS on systems that have it. Most OSes use AC_LIBOBJ([openssl])
dnl dlopen(), but HP-UX uses shl_load(). LIBS="$OPENSSL_LIBS $LIBS"
AC_CHECK_LIB(dl, dlopen, [], [ CFLAGS="$OPENSSL_CFLAGS -DHAVE_LIBSSL $CFLAGS"
AC_CHECK_LIB(dl, shl_load) LIBSSL=" " # ntlm check below wants this
]) AC_DEFINE([HAVE_LIBSSL], [1], [Define if using openssl.])
], [
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 dlopen(), but HP-UX uses shl_load().
AC_CHECK_LIB(dl, dlopen, [], [
AC_CHECK_LIB(dl, shl_load)
])
ssl_found=no ssl_found=no
case $host_os in case $host_os in
*mingw32* ) *mingw32* )
dnl prefer link to openssl dlls if possible. if not then fallback on static libs. if not then error 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) AC_CHECK_LIB(eay32, EVP_MD_CTX_init)
if test x"$ac_cv_lib_eay32_EVP_MD_CTX_init" != xno if test x"$ac_cv_lib_eay32_EVP_MD_CTX_init" != xno
then then
AC_CHECK_LIB(ssl32, SSL_connect, [ AC_CHECK_LIB(ssl32, SSL_connect, [
ssl_found=yes ssl_found=yes
AC_MSG_NOTICE([Enabling support for SSL via OpenSSL (shared)]) AC_MSG_NOTICE([Enabling support for SSL via OpenSSL (shared)])
AC_LIBOBJ([openssl]) AC_LIBOBJ([openssl])
LIBS="${LIBS} -lssl32" LIBS="${LIBS} -lssl32"
AC_DEFINE([HAVE_LIBSSL32], [1], [Define to 1 if you have the `ssl32' library (-lssl32).]) AC_DEFINE([HAVE_LIBSSL32], [1], [Define to 1 if you have the `ssl32' library (-lssl32).])
], ],
AC_MSG_ERROR([openssl not found: shared lib eay32 found but ssl32 not found])) AC_MSG_ERROR([openssl not found: shared lib eay32 found but ssl32 not found]))
else else
LIBS+=' -lgdi32' LIBS+=' -lgdi32'
dnl fallback and test static libs dnl fallback and test static libs
fi fi
dnl add zdll lib as dep for above tests? dnl add zdll lib as dep for above tests?
;; ;;
esac esac
AS_IF([test x$ssl_found != xyes], [ AS_IF([test x$ssl_found != xyes], [
dnl Now actually check for -lssl if it wasn't already found dnl Now actually check for -lssl if it wasn't already found
AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [ AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [
#include <openssl/ssl.h> #include <openssl/ssl.h>
#include <openssl/x509.h> #include <openssl/x509.h>
#include <openssl/err.h> #include <openssl/err.h>
@ -320,19 +328,19 @@ AS_IF([test x"$with_ssl" = xopenssl], [
#include <openssl/des.h> #include <openssl/des.h>
#include <openssl/md4.h> #include <openssl/md4.h>
#include <openssl/md5.h> #include <openssl/md5.h>
], [SSL_library_init ()]) ], [SSL_library_init ()])
if test x"$LIBSSL" != x if test x"$LIBSSL" != x
then then
ssl_found=yes ssl_found=yes
AC_MSG_NOTICE([compiling in support for SSL via OpenSSL]) AC_MSG_NOTICE([compiling in support for SSL via OpenSSL])
AC_LIBOBJ([openssl]) AC_LIBOBJ([openssl])
LIBS="$LIBSSL $LIBS" LIBS="$LIBSSL $LIBS"
elif test x"$with_ssl" != x elif test x"$with_ssl" != x
then then
AC_MSG_ERROR([--with-ssl=openssl was given, but SSL is not available.]) AC_MSG_ERROR([--with-ssl=openssl was given, but SSL is not available.])
fi fi
])
]) ])
], [ ], [
# --with-ssl is not openssl: check if it's no # --with-ssl is not openssl: check if it's no
AS_IF([test x"$with_ssl" != xno], [ AS_IF([test x"$with_ssl" != xno], [