From 5730efa0804468d342cb82d1ac9d5fc794ff572d Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Fri, 16 May 2014 11:29:53 +0200
Subject: [PATCH] detect openssl/pcre/libuuid/zlib via pkg-config if it's
 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.

Forward-ported to 1.15 release from b97942cd6b496501b396ea3bc2710010f4591542
(Mon, 21 May 2012 18:39:59 -0400)

Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
---
 configure.ac | 107 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 77 insertions(+), 30 deletions(-)

diff --git a/configure.ac b/configure.ac
index c5437bf..e0e2b25 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,6 +68,9 @@ AC_ARG_WITH(ssl,
 AC_ARG_WITH(zlib,
 [[  --without-zlib          disable zlib ]])
 
+AC_ARG_ENABLE(pcre, AC_HELP_STRING([--disable-pcre],
+				   [Disable PCRE style regular expressions]))
+
 AC_ARG_ENABLE(opie,
 [  --disable-opie          disable support for opie or s/key FTP login],
 ENABLE_OPIE=$enableval, ENABLE_OPIE=yes)
@@ -237,12 +240,28 @@ dnl
 dnl Checks for libraries.
 dnl
 
+PKG_PROG_PKG_CONFIG
+
 AS_IF([test x"$with_zlib" != xno], [
   with_zlib=yes
-  AC_CHECK_LIB(z, compress)
+  PKG_CHECK_MODULES([ZLIB], zlib, [
+    LIBS="$ZLIB_LIBS $LIBS"
+    CFLAGS="$ZLIB_CFLAGS $CFLAGS"
+    AC_DEFINE([HAVE_LIBZ], [1], [Define if using zlib.])
+  ], [
+    AC_CHECK_LIB(z, compress)
+  ])
 ])
 
 AS_IF([test x"$with_ssl" = xopenssl], [
+  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
@@ -276,9 +295,9 @@ AS_IF([test x"$with_ssl" = xopenssl], [
     ;;
   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 <openssl/ssl.h>
 #include <openssl/x509.h>
 #include <openssl/err.h>
@@ -286,17 +305,18 @@ AS_IF([test x"$with_ssl" = xopenssl], [
 #include <openssl/des.h>
 #include <openssl/md4.h>
 #include <openssl/md5.h>
-    ], [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
+    ])
   ])
 
 ], [
@@ -305,6 +325,14 @@ AS_IF([test x"$with_ssl" = xopenssl], [
     dnl default is -lgnutls
     with_ssl=gnutls
 
+  PKG_CHECK_MODULES([GNUTLS], [gnutls], [
+    AC_MSG_NOTICE([compiling in support for SSL via GnuTLS])
+    AC_LIBOBJ([gnutls])
+    LIBS="$GNUTLS_LIBS $LIBS"
+    CFLAGS="$GNUTLS_CFLAGS -DHAVE_LIBGNUTLS $CFLAGS"
+    AC_DEFINE([HAVE_LIBGNUTLS], [1], [Define if using gnutls.])
+  ], [
+
     dnl Now actually check for -lgnutls
     AC_LIB_HAVE_LINKFLAGS([gnutls], [], [
 #include <gnutls/gnutls.h>
@@ -319,6 +347,8 @@ AS_IF([test x"$with_ssl" = xopenssl], [
       AC_MSG_ERROR([--with-ssl=gnutls was given, but GNUTLS is not available.])
     fi
 
+    ])
+
     AC_CHECK_FUNCS(gnutls_priority_set_direct)
   ]) # endif: --with-ssl != no?
 ]) # endif: --with-ssl == openssl?
@@ -535,26 +565,43 @@ dnl
 dnl Check for UUID
 dnl
 
-AC_CHECK_HEADER(uuid/uuid.h,
-                AC_CHECK_LIB(uuid, uuid_generate,
-                  [LIBS="${LIBS} -luuid"
-                   AC_DEFINE([HAVE_LIBUUID], 1,
-                             [Define if libuuid is available.])
-                  ])
-)
+AC_ARG_WITH(libuuid, AC_HELP_STRING([--without-libuuid],
+				    [Generate UUIDs for WARC files via libuuid]))
+AS_IF([test "X$with_libuuid" != "Xno"],[
+  PKG_CHECK_MODULES([UUID], uuid, [
+    LIBS="$UUID_LIBS $LIBS"
+    CFLAGS="$UUID_CFLAGS $CFLAGS"
+    AC_DEFINE([HAVE_LIBUUID], [1], [Define if using libuuid.])
+  ], [
+    AC_CHECK_HEADER(uuid/uuid.h,
+		    AC_CHECK_LIB(uuid, uuid_generate,
+				 [LIBS="${LIBS} -luuid"
+				  AC_DEFINE([HAVE_LIBUUID], 1,
+					    [Define if libuuid is available.])
+				 ])
+    )
+  ])
+])
 
 dnl
 dnl Check for PCRE
 dnl
 
-AC_CHECK_HEADER(pcre.h,
-                AC_CHECK_LIB(pcre, pcre_compile,
-                  [LIBS="${LIBS} -lpcre"
-                   AC_DEFINE([HAVE_LIBPCRE], 1,
-                             [Define if libpcre is available.])
-                  ])
-)
-
+AS_IF([test "X$enable_pcre" != "Xno"],[
+  PKG_CHECK_MODULES([PCRE], libpcre, [
+    LIBS="$PCRE_LIBS $LIBS"
+    CFLAGS="$PCRE_CFLAGS $CFLAGS"
+    AC_DEFINE([HAVE_LIBPCRE], [1], [Define if using libpcre.])
+  ], [
+    AC_CHECK_HEADER(pcre.h,
+		    AC_CHECK_LIB(pcre, pcre_compile,
+				 [LIBS="${LIBS} -lpcre"
+				  AC_DEFINE([HAVE_LIBPCRE], 1,
+					    [Define if libpcre is available.])
+				 ])
+    )
+  ])
+])
  
 dnl Needed by src/Makefile.am
 AM_CONDITIONAL([IRI_IS_ENABLED], [test "X$iri" != "Xno"])
-- 
1.9.3

