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?
@@ -542,32 +542,51 @@ fi
 dnl
 dnl Check for UUID
 dnl
-AC_CHECK_HEADER(uuid.h,
-                AC_CHECK_FUNC(uuid, uuid_create,
-                  [AC_DEFINE([HAVE_UUID_CREATE], 1,
-                             [Define if uuid_create is available.])
-                  ])
-)
 
-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.h,
+                    AC_CHECK_FUNC(uuid, uuid_create,
+                      [AC_DEFINE([HAVE_UUID_CREATE], 1,
+                                 [Define if uuid_create is available.])
+                      ])
+    )
+
+    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
