From 72b9e9040d58c15f0302bd8abda28179f04e1c5f Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Wed, 16 Aug 2017 10:43:18 +0800
Subject: [PATCH 1/4] Add and use pkg-config for libgcrypt instead of -config
 scripts.

Upstream-Status: Denied [upstream have indicated they don't want a
pkg-config dependency]

RP 2014/5/22

Rebase to 1.8.0

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 configure.ac        |  1 +
 src/libgcrypt.m4    | 71 +++--------------------------------------------------
 src/libgcrypt.pc.in | 33 +++++++++++++++++++++++++
 3 files changed, 38 insertions(+), 67 deletions(-)
 create mode 100644 src/libgcrypt.pc.in

diff --git a/configure.ac b/configure.ac
index bbe8104..3d2de73 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2607,6 +2607,7 @@ random/Makefile
 doc/Makefile
 src/Makefile
 src/gcrypt.h
+src/libgcrypt.pc
 src/libgcrypt-config
 src/versioninfo.rc
 tests/Makefile
diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4
index c67cfec..4ea5f2c 100644
--- a/src/libgcrypt.m4
+++ b/src/libgcrypt.m4
@@ -29,30 +29,6 @@ dnl is added to the gpg_config_script_warn variable.
 dnl
 AC_DEFUN([AM_PATH_LIBGCRYPT],
 [ AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_ARG_WITH(libgcrypt-prefix,
-            AC_HELP_STRING([--with-libgcrypt-prefix=PFX],
-                           [prefix where LIBGCRYPT is installed (optional)]),
-     libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
-  if test x"${LIBGCRYPT_CONFIG}" = x ; then
-     if test x"${libgcrypt_config_prefix}" != x ; then
-        LIBGCRYPT_CONFIG="${libgcrypt_config_prefix}/bin/libgcrypt-config"
-     else
-       case "${SYSROOT}" in
-         /*)
-           if test -x "${SYSROOT}/bin/libgcrypt-config" ; then
-             LIBGCRYPT_CONFIG="${SYSROOT}/bin/libgcrypt-config"
-           fi
-           ;;
-         '')
-           ;;
-          *)
-           AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
-           ;;
-       esac
-     fi
-  fi
-
-  AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
   tmp=ifelse([$1], ,1:1.2.0,$1)
   if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
      req_libgcrypt_api=`echo "$tmp"     | sed 's/\(.*\):\(.*\)/\1/'`
@@ -62,48 +38,13 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
      min_libgcrypt_version="$tmp"
   fi
 
-  AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version)
-  ok=no
-  if test "$LIBGCRYPT_CONFIG" != "no" ; then
-    req_major=`echo $min_libgcrypt_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
-    req_minor=`echo $min_libgcrypt_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
-    req_micro=`echo $min_libgcrypt_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
-    libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
-    major=`echo $libgcrypt_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-    minor=`echo $libgcrypt_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-    micro=`echo $libgcrypt_config_version | \
-               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-    if test "$major" -gt "$req_major"; then
-        ok=yes
-    else
-        if test "$major" -eq "$req_major"; then
-            if test "$minor" -gt "$req_minor"; then
-               ok=yes
-            else
-               if test "$minor" -eq "$req_minor"; then
-                   if test "$micro" -ge "$req_micro"; then
-                     ok=yes
-                   fi
-               fi
-            fi
-        fi
-    fi
-  fi
-  if test $ok = yes; then
-    AC_MSG_RESULT([yes ($libgcrypt_config_version)])
-  else
-    AC_MSG_RESULT(no)
-  fi
+  PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= $min_libgcrypt_version], [ok=yes], [ok=no])
+
   if test $ok = yes; then
      # If we have a recent libgcrypt, we should also check that the
      # API is compatible
      if test "$req_libgcrypt_api" -gt 0 ; then
-        tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
+        tmp=`$PKG_CONFIG --variable=api_version libgcrypt`
         if test "$tmp" -gt 0 ; then
            AC_MSG_CHECKING([LIBGCRYPT API version])
            if test "$req_libgcrypt_api" -eq "$tmp" ; then
@@ -116,10 +57,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
      fi
   fi
   if test $ok = yes; then
-    LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
-    LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
     ifelse([$2], , :, [$2])
-    libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none`
+    libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt`
     if test x"$libgcrypt_config_host" != xnone ; then
       if test x"$libgcrypt_config_host" != x"$host" ; then
   AC_MSG_WARN([[
@@ -134,8 +73,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
       fi
     fi
   else
-    LIBGCRYPT_CFLAGS=""
-    LIBGCRYPT_LIBS=""
     ifelse([$3], , :, [$3])
   fi
   AC_SUBST(LIBGCRYPT_CFLAGS)
diff --git a/src/libgcrypt.pc.in b/src/libgcrypt.pc.in
new file mode 100644
index 0000000..2fc8f53
--- /dev/null
+++ b/src/libgcrypt.pc.in
@@ -0,0 +1,33 @@
+# Process this file with autoconf to produce a pkg-config metadata file.
+# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation
+# Author: Simon Josefsson
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This file is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+# API info
+api_version=@LIBGCRYPT_CONFIG_API_VERSION@
+host=@LIBGCRYPT_CONFIG_HOST@
+
+# Misc information.
+symmetric_ciphers=@LIBGCRYPT_CIPHERS@
+asymmetric_ciphers=@LIBGCRYPT_PUBKEY_CIPHERS@
+digests=@LIBGCRYPT_DIGESTS@
+
+Name: libgcrypt
+Description: GNU crypto library
+URL: http://www.gnupg.org
+Version: @VERSION@
+Libs: -L${libdir} -lgcrypt
+Libs.private: -L${libdir} -lgpg-error
+Cflags: -I${includedir} 
-- 
1.8.3.1

