1dnl Autoconf macros for libgcrypt 2dnl Copyright (C) 2002, 2004, 2011 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_REQUIRE([AC_CANONICAL_HOST]) 25 AC_ARG_WITH(libgcrypt-prefix, 26 AC_HELP_STRING([--with-libgcrypt-prefix=PFX], 27 [prefix where LIBGCRYPT is installed (optional)]), 28 libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") 29 if test x$libgcrypt_config_prefix != x ; then 30 if test x${LIBGCRYPT_CONFIG+set} != xset ; then 31 LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config 32 fi 33 fi 34 35 AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no) 36 tmp=ifelse([$1], ,1:1.2.0,$1) 37 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 38 req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` 39 min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` 40 else 41 req_libgcrypt_api=0 42 min_libgcrypt_version="$tmp" 43 fi 44 45 AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) 46 ok=no 47 if test "$LIBGCRYPT_CONFIG" != "no" ; then 48 req_major=`echo $min_libgcrypt_version | \ 49 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` 50 req_minor=`echo $min_libgcrypt_version | \ 51 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` 52 req_micro=`echo $min_libgcrypt_version | \ 53 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` 54 libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version` 55 major=`echo $libgcrypt_config_version | \ 56 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` 57 minor=`echo $libgcrypt_config_version | \ 58 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` 59 micro=`echo $libgcrypt_config_version | \ 60 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` 61 if test "$major" -gt "$req_major"; then 62 ok=yes 63 else 64 if test "$major" -eq "$req_major"; then 65 if test "$minor" -gt "$req_minor"; then 66 ok=yes 67 else 68 if test "$minor" -eq "$req_minor"; then 69 if test "$micro" -ge "$req_micro"; then 70 ok=yes 71 fi 72 fi 73 fi 74 fi 75 fi 76 fi 77 if test $ok = yes; then 78 AC_MSG_RESULT([yes ($libgcrypt_config_version)]) 79 else 80 AC_MSG_RESULT(no) 81 fi 82 if test $ok = yes; then 83 # If we have a recent libgcrypt, we should also check that the 84 # API is compatible 85 if test "$req_libgcrypt_api" -gt 0 ; then 86 tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0` 87 if test "$tmp" -gt 0 ; then 88 AC_MSG_CHECKING([LIBGCRYPT API version]) 89 if test "$req_libgcrypt_api" -eq "$tmp" ; then 90 AC_MSG_RESULT([okay]) 91 else 92 ok=no 93 AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp]) 94 fi 95 fi 96 fi 97 fi 98 if test $ok = yes; then 99 LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` 100 LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` 101 ifelse([$2], , :, [$2]) 102 libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none` 103 if test x"$libgcrypt_config_host" != xnone ; then 104 if test x"$libgcrypt_config_host" != x"$host" ; then 105 AC_MSG_WARN([[ 106*** 107*** The config script $LIBGCRYPT_CONFIG was 108*** built for $libgcrypt_config_host and thus may not match the 109*** used host $host. 110*** You may want to use the configure option --with-libgcrypt-prefix 111*** to specify a matching config script. 112***]]) 113 fi 114 fi 115 else 116 LIBGCRYPT_CFLAGS="" 117 LIBGCRYPT_LIBS="" 118 ifelse([$3], , :, [$3]) 119 fi 120 AC_SUBST(LIBGCRYPT_CFLAGS) 121 AC_SUBST(LIBGCRYPT_LIBS) 122]) 123