diff options
Diffstat (limited to 'm4/libgcrypt.m4')
-rw-r--r-- | m4/libgcrypt.m4 | 108 |
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 @@ | |||
1 | dnl Autoconf macros for libgcrypt | ||
2 | dnl Copyright (C) 2002, 2004 Free Software Foundation, Inc. | ||
3 | dnl | ||
4 | dnl This file is free software; as a special exception the author gives | ||
5 | dnl unlimited permission to copy and/or distribute it, with or without | ||
6 | dnl modifications, as long as this notice is preserved. | ||
7 | dnl | ||
8 | dnl This file is distributed in the hope that it will be useful, but | ||
9 | dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the | ||
10 | dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
11 | |||
12 | |||
13 | dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, | ||
14 | dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) | ||
15 | dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS. | ||
16 | dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed | ||
17 | dnl with the API version to also check the API compatibility. Example: | ||
18 | dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed | ||
19 | dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using | ||
20 | dnl this features allows to prevent build against newer versions of libgcrypt | ||
21 | dnl with a changed API. | ||
22 | dnl | ||
23 | AC_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 | ]) | ||