1# gpgme.m4 - autoconf macro to detect GPGME. 2# Copyright (C) 2002, 2003, 2004 g10 Code GmbH 3# 4# This file is free software; as a special exception the author gives 5# unlimited permission to copy and/or distribute it, with or without 6# modifications, as long as this notice is preserved. 7# 8# This file is distributed in the hope that it will be useful, but 9# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the 10# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11 12 13AC_DEFUN([_AM_PATH_GPGME_CONFIG], 14[ AC_ARG_WITH(gpgme-prefix, 15 AC_HELP_STRING([--with-gpgme-prefix=PFX], 16 [prefix where GPGME is installed (optional)]), 17 gpgme_config_prefix="$withval", gpgme_config_prefix="") 18 if test "x$gpgme_config_prefix" != x ; then 19 GPGME_CONFIG="$gpgme_config_prefix/bin/gpgme-config" 20 fi 21 AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no) 22 23 if test "$GPGME_CONFIG" != "no" ; then 24 gpgme_version=`$GPGME_CONFIG --version` 25 fi 26 gpgme_version_major=`echo $gpgme_version | \ 27 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'` 28 gpgme_version_minor=`echo $gpgme_version | \ 29 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'` 30 gpgme_version_micro=`echo $gpgme_version | \ 31 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'` 32]) 33 34dnl AM_PATH_GPGME([MINIMUM-VERSION, 35dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) 36dnl Test for libgpgme and define GPGME_CFLAGS and GPGME_LIBS. 37dnl 38AC_DEFUN([AM_PATH_GPGME], 39[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl 40 tmp=ifelse([$1], ,1:0.4.2,$1) 41 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 42 req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` 43 min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` 44 else 45 req_gpgme_api=0 46 min_gpgme_version="$tmp" 47 fi 48 49 AC_MSG_CHECKING(for GPGME - version >= $min_gpgme_version) 50 ok=no 51 if test "$GPGME_CONFIG" != "no" ; then 52 req_major=`echo $min_gpgme_version | \ 53 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` 54 req_minor=`echo $min_gpgme_version | \ 55 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` 56 req_micro=`echo $min_gpgme_version | \ 57 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` 58 if test "$gpgme_version_major" -gt "$req_major"; then 59 ok=yes 60 else 61 if test "$gpgme_version_major" -eq "$req_major"; then 62 if test "$gpgme_version_minor" -gt "$req_minor"; then 63 ok=yes 64 else 65 if test "$gpgme_version_minor" -eq "$req_minor"; then 66 if test "$gpgme_version_micro" -ge "$req_micro"; then 67 ok=yes 68 fi 69 fi 70 fi 71 fi 72 fi 73 fi 74 if test $ok = yes; then 75 # If we have a recent GPGME, we should also check that the 76 # API is compatible. 77 if test "$req_gpgme_api" -gt 0 ; then 78 tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` 79 if test "$tmp" -gt 0 ; then 80 if test "$req_gpgme_api" -ne "$tmp" ; then 81 ok=no 82 fi 83 fi 84 fi 85 fi 86 if test $ok = yes; then 87 GPGME_CFLAGS=`$GPGME_CONFIG --cflags` 88 GPGME_LIBS=`$GPGME_CONFIG --libs` 89 AC_MSG_RESULT(yes) 90 ifelse([$2], , :, [$2]) 91 else 92 GPGME_CFLAGS="" 93 GPGME_LIBS="" 94 AC_MSG_RESULT(no) 95 ifelse([$3], , :, [$3]) 96 fi 97 AC_SUBST(GPGME_CFLAGS) 98 AC_SUBST(GPGME_LIBS) 99]) 100 101dnl AM_PATH_GPGME_PTH([MINIMUM-VERSION, 102dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) 103dnl Test for libgpgme and define GPGME_PTH_CFLAGS and GPGME_PTH_LIBS. 104dnl 105AC_DEFUN([AM_PATH_GPGME_PTH], 106[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl 107 tmp=ifelse([$1], ,1:0.4.2,$1) 108 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 109 req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` 110 min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` 111 else 112 req_gpgme_api=0 113 min_gpgme_version="$tmp" 114 fi 115 116 AC_MSG_CHECKING(for GPGME Pth - version >= $min_gpgme_version) 117 ok=no 118 if test "$GPGME_CONFIG" != "no" ; then 119 if `$GPGME_CONFIG --thread=pth 2> /dev/null` ; then 120 req_major=`echo $min_gpgme_version | \ 121 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` 122 req_minor=`echo $min_gpgme_version | \ 123 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` 124 req_micro=`echo $min_gpgme_version | \ 125 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` 126 if test "$gpgme_version_major" -gt "$req_major"; then 127 ok=yes 128 else 129 if test "$gpgme_version_major" -eq "$req_major"; then 130 if test "$gpgme_version_minor" -gt "$req_minor"; then 131 ok=yes 132 else 133 if test "$gpgme_version_minor" -eq "$req_minor"; then 134 if test "$gpgme_version_micro" -ge "$req_micro"; then 135 ok=yes 136 fi 137 fi 138 fi 139 fi 140 fi 141 fi 142 fi 143 if test $ok = yes; then 144 # If we have a recent GPGME, we should also check that the 145 # API is compatible. 146 if test "$req_gpgme_api" -gt 0 ; then 147 tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` 148 if test "$tmp" -gt 0 ; then 149 if test "$req_gpgme_api" -ne "$tmp" ; then 150 ok=no 151 fi 152 fi 153 fi 154 fi 155 if test $ok = yes; then 156 GPGME_PTH_CFLAGS=`$GPGME_CONFIG --thread=pth --cflags` 157 GPGME_PTH_LIBS=`$GPGME_CONFIG --thread=pth --libs` 158 AC_MSG_RESULT(yes) 159 ifelse([$2], , :, [$2]) 160 else 161 GPGME_PTH_CFLAGS="" 162 GPGME_PTH_LIBS="" 163 AC_MSG_RESULT(no) 164 ifelse([$3], , :, [$3]) 165 fi 166 AC_SUBST(GPGME_PTH_CFLAGS) 167 AC_SUBST(GPGME_PTH_LIBS) 168]) 169 170dnl AM_PATH_GPGME_PTHREAD([MINIMUM-VERSION, 171dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) 172dnl Test for libgpgme and define GPGME_PTHREAD_CFLAGS 173dnl and GPGME_PTHREAD_LIBS. 174dnl 175AC_DEFUN([AM_PATH_GPGME_PTHREAD], 176[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl 177 tmp=ifelse([$1], ,1:0.4.2,$1) 178 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 179 req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` 180 min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` 181 else 182 req_gpgme_api=0 183 min_gpgme_version="$tmp" 184 fi 185 186 AC_MSG_CHECKING(for GPGME pthread - version >= $min_gpgme_version) 187 ok=no 188 if test "$GPGME_CONFIG" != "no" ; then 189 if `$GPGME_CONFIG --thread=pthread 2> /dev/null` ; then 190 req_major=`echo $min_gpgme_version | \ 191 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` 192 req_minor=`echo $min_gpgme_version | \ 193 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` 194 req_micro=`echo $min_gpgme_version | \ 195 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` 196 if test "$gpgme_version_major" -gt "$req_major"; then 197 ok=yes 198 else 199 if test "$gpgme_version_major" -eq "$req_major"; then 200 if test "$gpgme_version_minor" -gt "$req_minor"; then 201 ok=yes 202 else 203 if test "$gpgme_version_minor" -eq "$req_minor"; then 204 if test "$gpgme_version_micro" -ge "$req_micro"; then 205 ok=yes 206 fi 207 fi 208 fi 209 fi 210 fi 211 fi 212 fi 213 if test $ok = yes; then 214 # If we have a recent GPGME, we should also check that the 215 # API is compatible. 216 if test "$req_gpgme_api" -gt 0 ; then 217 tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` 218 if test "$tmp" -gt 0 ; then 219 if test "$req_gpgme_api" -ne "$tmp" ; then 220 ok=no 221 fi 222 fi 223 fi 224 fi 225 if test $ok = yes; then 226 GPGME_PTHREAD_CFLAGS=`$GPGME_CONFIG --thread=pthread --cflags` 227 GPGME_PTHREAD_LIBS=`$GPGME_CONFIG --thread=pthread --libs` 228 AC_MSG_RESULT(yes) 229 ifelse([$2], , :, [$2]) 230 else 231 GPGME_PTHREAD_CFLAGS="" 232 GPGME_PTHREAD_LIBS="" 233 AC_MSG_RESULT(no) 234 ifelse([$3], , :, [$3]) 235 fi 236 AC_SUBST(GPGME_PTHREAD_CFLAGS) 237 AC_SUBST(GPGME_PTHREAD_LIBS) 238]) 239 240 241dnl AM_PATH_GPGME_GLIB([MINIMUM-VERSION, 242dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) 243dnl Test for libgpgme-glib and define GPGME_GLIB_CFLAGS and GPGME_GLIB_LIBS. 244dnl 245AC_DEFUN([AM_PATH_GPGME_GLIB], 246[ AC_REQUIRE([_AM_PATH_GPGME_CONFIG])dnl 247 tmp=ifelse([$1], ,1:0.4.2,$1) 248 if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then 249 req_gpgme_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'` 250 min_gpgme_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'` 251 else 252 req_gpgme_api=0 253 min_gpgme_version="$tmp" 254 fi 255 256 AC_MSG_CHECKING(for GPGME - version >= $min_gpgme_version) 257 ok=no 258 if test "$GPGME_CONFIG" != "no" ; then 259 req_major=`echo $min_gpgme_version | \ 260 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'` 261 req_minor=`echo $min_gpgme_version | \ 262 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'` 263 req_micro=`echo $min_gpgme_version | \ 264 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'` 265 if test "$gpgme_version_major" -gt "$req_major"; then 266 ok=yes 267 else 268 if test "$gpgme_version_major" -eq "$req_major"; then 269 if test "$gpgme_version_minor" -gt "$req_minor"; then 270 ok=yes 271 else 272 if test "$gpgme_version_minor" -eq "$req_minor"; then 273 if test "$gpgme_version_micro" -ge "$req_micro"; then 274 ok=yes 275 fi 276 fi 277 fi 278 fi 279 fi 280 fi 281 if test $ok = yes; then 282 # If we have a recent GPGME, we should also check that the 283 # API is compatible. 284 if test "$req_gpgme_api" -gt 0 ; then 285 tmp=`$GPGME_CONFIG --api-version 2>/dev/null || echo 0` 286 if test "$tmp" -gt 0 ; then 287 if test "$req_gpgme_api" -ne "$tmp" ; then 288 ok=no 289 fi 290 fi 291 fi 292 fi 293 if test $ok = yes; then 294 GPGME_GLIB_CFLAGS=`$GPGME_CONFIG --glib --cflags` 295 GPGME_GLIB_LIBS=`$GPGME_CONFIG --glib --libs` 296 AC_MSG_RESULT(yes) 297 ifelse([$2], , :, [$2]) 298 else 299 GPGME_GLIB_CFLAGS="" 300 GPGME_GLIB_LIBS="" 301 AC_MSG_RESULT(no) 302 ifelse([$3], , :, [$3]) 303 fi 304 AC_SUBST(GPGME_GLIB_CFLAGS) 305 AC_SUBST(GPGME_GLIB_LIBS) 306]) 307 308