From ed0c2c1b9504a99a6dcc3c0f5de3b3a1c0232758 Mon Sep 17 00:00:00 2001 From: Rodrigo Rebello Date: Mon, 20 Mar 2017 13:17:42 -0300 Subject: [PATCH] Get back to using pkg-config to check for OpenSSL Commit 6300dfec7 removed the option to disable SSL support from the configure script since it became a requirement, but it also removed the use of pkg-config for finding the OpenSSL library and its dependencies. This had the unfortunate consequence of breaking the correct detection of library flags in many static linking scenarios. In some cases, for example, OpenSSL might have been built with zlib, which requires `-lz` to be passed to the linker when doing a static link of the irssi executable. Thus, pkg-config becomes an invaluable tool in such situations, since no guessing work is needed as the OpenSSL .pc file provides all the necessary flags. So, this patch re-inserts the PKG_CHECK_MODULES macro in the configure script when looking for OpenSSL. The test using AC_CHECK_LIB remains, but only as a last resort in case the one using pkg-config fails. Also, because the macro AM_PATH_GLIB_2_0 contains an unconditional call to PKG_PROG_PKG_CONFIG, the OpenSSL checks are moved so that they come after the Glib ones in order to avoid doubly checking for the pkg-config binary (PKG_CHECK_MODULES skips that check if it has been performed before, but PKG_PROG_PKG_CONFIG does not). Upstream status: submitted https://github.com/irssi/irssi/pull/677 Signed-off-by: Rodrigo Rebello --- configure.ac | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 02b33497..9f191d3f 100644 --- a/configure.ac +++ b/configure.ac @@ -231,11 +231,6 @@ if test "x$want_socks" = "xyes"; then fi dnl ** -dnl ** OpenSSL checks -dnl ** -AC_CHECK_LIB([ssl], [SSL_library_init]) - -dnl ** dnl ** fe-text checks dnl ** @@ -276,7 +271,21 @@ if test -z "$GLIB_LIBS"; then AC_ERROR([GLIB is required to build irssi.]) fi -LIBS="$LIBS $GLIB_LIBS -lssl -lcrypto" +LIBS="$LIBS $GLIB_LIBS" + +dnl ** +dnl ** OpenSSL checks +dnl ** +PKG_CHECK_MODULES([OPENSSL], [openssl], [ + CFLAGS="$CFLAGS $OPENSSL_CFLAGS" + LIBS="$LIBS $OPENSSL_LIBS" +], [ + AC_CHECK_LIB([ssl], [SSL_library_init], [ + LIBS="$LIBS -lssl -lcrypto" + ], [ + AC_MSG_ERROR([The OpenSSL library was not found]) + ]) +]) dnl ** dnl ** curses checks -- 2.11.0