aboutsummaryrefslogtreecommitdiff
path: root/m4/libgcrypt.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/libgcrypt.m4')
-rw-r--r--m4/libgcrypt.m4108
1 files changed, 108 insertions, 0 deletions
diff --git a/m4/libgcrypt.m4 b/m4/libgcrypt.m4
new file mode 100644
index 00000000..854eaaa8
--- /dev/null
+++ b/m4/libgcrypt.m4
@@ -0,0 +1,108 @@
1dnl Autoconf macros for libgcrypt
2dnl Copyright (C) 2002, 2004 Free Software Foundation, Inc.
3dnl
4dnl This file is free software; as a special exception the author gives
5dnl unlimited permission to copy and/or distribute it, with or without
6dnl modifications, as long as this notice is preserved.
7dnl
8dnl This file is distributed in the hope that it will be useful, but
9dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
10dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11
12
13dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION,
14dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
15dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS.
16dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed
17dnl with the API version to also check the API compatibility. Example:
18dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed
19dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using
20dnl this features allows to prevent build against newer versions of libgcrypt
21dnl with a changed API.
22dnl
23AC_DEFUN([AM_PATH_LIBGCRYPT],
24[ AC_ARG_WITH(libgcrypt-prefix,
25 AC_HELP_STRING([--with-libgcrypt-prefix=PFX],
26 [prefix where LIBGCRYPT is installed (optional)]),
27 libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
28 if test x$libgcrypt_config_prefix != x ; then
29 if test x${LIBGCRYPT_CONFIG+set} != xset ; then
30 LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config
31 fi
32 fi
33
34 AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
35 tmp=ifelse([$1], ,1:1.2.0,$1)
36 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
37 req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
38 min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
39 else
40 req_libgcrypt_api=0
41 min_libgcrypt_version="$tmp"
42 fi
43
44 AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version)
45 ok=no
46 if test "$LIBGCRYPT_CONFIG" != "no" ; then
47 req_major=`echo $min_libgcrypt_version | \
48 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
49 req_minor=`echo $min_libgcrypt_version | \
50 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
51 req_micro=`echo $min_libgcrypt_version | \
52 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
53 libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
54 major=`echo $libgcrypt_config_version | \
55 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
56 minor=`echo $libgcrypt_config_version | \
57 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
58 micro=`echo $libgcrypt_config_version | \
59 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
60 if test "$major" -gt "$req_major"; then
61 ok=yes
62 else
63 if test "$major" -eq "$req_major"; then
64 if test "$minor" -gt "$req_minor"; then
65 ok=yes
66 else
67 if test "$minor" -eq "$req_minor"; then
68 if test "$micro" -ge "$req_micro"; then
69 ok=yes
70 fi
71 fi
72 fi
73 fi
74 fi
75 fi
76 if test $ok = yes; then
77 AC_MSG_RESULT([yes ($libgcrypt_config_version)])
78 else
79 AC_MSG_RESULT(no)
80 fi
81 if test $ok = yes; then
82 # If we have a recent libgcrypt, we should also check that the
83 # API is compatible
84 if test "$req_libgcrypt_api" -gt 0 ; then
85 tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
86 if test "$tmp" -gt 0 ; then
87 AC_MSG_CHECKING([LIBGCRYPT API version])
88 if test "$req_libgcrypt_api" -eq "$tmp" ; then
89 AC_MSG_RESULT([okay])
90 else
91 ok=no
92 AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp])
93 fi
94 fi
95 fi
96 fi
97 if test $ok = yes; then
98 LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
99 LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
100 ifelse([$2], , :, [$2])
101 else
102 LIBGCRYPT_CFLAGS=""
103 LIBGCRYPT_LIBS=""
104 ifelse([$3], , :, [$3])
105 fi
106 AC_SUBST(LIBGCRYPT_CFLAGS)
107 AC_SUBST(LIBGCRYPT_LIBS)
108])