From 5ae5d2eaeb55e774961bd6f16375537f3a66b7b4 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 27 Oct 2014 14:55:24 -0400 Subject: [PATCH] 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. --- ChangeLog | 3 ++ configure.ac | 96 ++++++++++++++++++++++++++++------------------------ 2 files changed, 55 insertions(+), 44 deletions(-) diff --git a/ChangeLog b/ChangeLog index 42a096a8..6680820e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,9 @@ * configure.ac: Use pkg-config to check for pcre presence and 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 * contrib: Created contrib folder. * contrib/tsocked-wget: Added wrapper for usage with socks proxy. diff --git a/configure.ac b/configure.ac index 1b5407dc..0d170cbf 100644 --- a/configure.ac +++ b/configure.ac @@ -277,42 +277,50 @@ AS_IF([test x"$with_zlib" != xno], [ ]) AS_IF([test x"$with_ssl" = xopenssl], [ - 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) - ]) + PKG_CHECK_MODULES([OPENSSL], [openssl], [ + AC_MSG_NOTICE([compiling in support for SSL via OpenSSL]) + AC_LIBOBJ([openssl]) + LIBS="$OPENSSL_LIBS $LIBS" + CFLAGS="$OPENSSL_CFLAGS -DHAVE_LIBSSL $CFLAGS" + 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 - case $host_os in - *mingw32* ) - dnl prefer link to openssl dlls if possible. if not then fallback on static libs. if not then error + ssl_found=no + 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, [ - ssl_found=yes - AC_MSG_NOTICE([Enabling support for SSL via OpenSSL (shared)]) - AC_LIBOBJ([openssl]) - LIBS="${LIBS} -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_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, [ + ssl_found=yes + AC_MSG_NOTICE([Enabling support for SSL via OpenSSL (shared)]) + AC_LIBOBJ([openssl]) + LIBS="${LIBS} -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])) - else - LIBS+=' -lgdi32' - dnl fallback and test static libs - fi - dnl add zdll lib as dep for above tests? - ;; - esac + else + LIBS+=' -lgdi32' + dnl fallback and test static libs + fi + dnl add zdll lib as dep for above tests? + ;; + esac - AS_IF([test x$ssl_found != xyes], [ - dnl Now actually check for -lssl if it wasn't already found - AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [ + AS_IF([test x$ssl_found != xyes], [ + dnl Now actually check for -lssl if it wasn't already found + AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [ #include #include #include @@ -320,19 +328,19 @@ AS_IF([test x"$with_ssl" = xopenssl], [ #include #include #include - ], [SSL_library_init ()]) - if test x"$LIBSSL" != x - then - ssl_found=yes - AC_MSG_NOTICE([compiling in support for SSL via OpenSSL]) - AC_LIBOBJ([openssl]) - LIBS="$LIBSSL $LIBS" - elif test x"$with_ssl" != x - then - AC_MSG_ERROR([--with-ssl=openssl was given, but SSL is not available.]) - fi + ], [SSL_library_init ()]) + if test x"$LIBSSL" != x + then + ssl_found=yes + AC_MSG_NOTICE([compiling in support for SSL via OpenSSL]) + AC_LIBOBJ([openssl]) + LIBS="$LIBSSL $LIBS" + elif test x"$with_ssl" != x + then + AC_MSG_ERROR([--with-ssl=openssl was given, but SSL is not available.]) + fi + ]) ]) - ], [ # --with-ssl is not openssl: check if it's no AS_IF([test x"$with_ssl" != xno], [