Fixed.
[elisp/epg.git] / acinclude.m4
index ad09542..85d95ba 100644 (file)
@@ -357,3 +357,75 @@ AC_DEFUN([AC_ADD_LOAD_PATH],
     fi],
     ADDITIONAL_LOAD_PATH=)
   AC_SUBST(ADDITIONAL_LOAD_PATH)])
+
+AC_DEFUN([AC_CHECK_GPG],
+ [AC_ARG_ENABLE(gpgtest,
+  AC_HELP_STRING([--disable-gpgtest=PATH], [Do not check GnuPG version]),
+    enable_gpgtest=yes)
+  ok=maybe
+  if test "x$enable_gpgtest" = "xyes"; then
+    ok=yes
+  else
+    AC_PATH_PROG(GPG, gpg)
+    AC_ARG_WITH(gpg,
+      AC_HELP_STRING([--with-gpg=PATH], [use GnuPG binary at PATH]),
+      GPG=$withval)
+    AC_DEFINE_UNQUOTED(GPG_PATH, "$GPG", [Path to the GnuPG binary.])
+    AC_SUBST(GPG)
+  fi
+  dnl Check for GnuPG version requirement.
+  GPG_VERSION=unknown
+  if test -z "$GPG" -o "x$GPG" = "xno"; then
+    ok=no
+  else
+    if test ! -x "$GPG"; then
+      AC_MSG_WARN([GnuPG not executable, version check disabled])
+      ok=no
+    fi
+  fi
+  if test "$ok" = "maybe"; then
+    AC_MSG_CHECKING(for GnuPG >= $1)
+    req_major=`echo $1 | \
+             sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
+    req_minor=`echo $1 | \
+             sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
+    req_micro=`echo $1 | \
+             sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
+    gpg_version=`"$GPG" --version | grep ^gpg`
+    major=`echo $gpg_version | \
+         sed 's/^gpg (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+    minor=`echo $gpg_version | \
+         sed 's/^gpg (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+    micro=`echo $gpg_version | \
+         sed 's/^gpg (GnuPG) \([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
+    GPG_VERSION=`echo $gpg_version | sed 's/^gpg (GnuPG) //'`
+
+    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
+    if test "$ok" = "yes"; then
+      AC_MSG_RESULT(yes)
+    else
+      AC_MSG_RESULT(no)
+      AC_MSG_WARN([GnuPG must be at least version $1])
+    fi
+  fi
+  if test "$ok" = "yes"; then
+    ifelse([$2], , :, [$2])
+  else
+    ifelse([$3], , :, [$3])
+  fi
+  AM_CONDITIONAL(RUN_GPG_TESTS, test "$ok" = "yes")
+  AC_SUBST(GPG_PATH)])