Download M4 Source Macro History Category Index

ax_lib_gcrypt

Synopsis

AX_LIB_GCRYPT([yes|no|auto])

Description

Searches for the 'gcrypt' library with the --with... option.

If found, define HAVE_GCRYPT and macro GCRYPT_LIBS and GCRYPT_CFLAGS. Also defines GCRYPT_WITH_<algo> for the algorithms found available. Possible algorithms are: AES ARCFOUR BLOWFISH CAST5 DES IDEA RFC2268 SERPENT TWOFISH CRC HAVAL MD2 MD4 MD5 RMD160 SHA0 SHA1 SHA224 SHA256 SHA384 SHA512 TIGER WHIRLPOOL DSA ELGAMAL RSA

The argument is used if no --with...-gcrypt option is set. Value "yes" requires the configuration by default. Value "no" does not require it by default. Value "auto" configures the library only if available.

See also AX_LIB_BEECRYPT and AX_LIB_CRYPTO.

Author

Fabien Coelho <autoconf.archive@coelho.net>

Last Modified

2008-08-07

Cross References

group30-xrefs.png

M4 Source Code

# AX_CHECK_GCRYPT_ALGO([algo])
# generate convenient defines for each algorithm
AC_DEFUN([AX_CHECK_GCRYPT_ALGO],[
  AC_REQUIRE([AC_PROG_EGREP])
  AC_MSG_CHECKING([for $1 in gcrypt])
  if echo $gcrypt_algos | $EGREP -i ":.*( $1 | $1$)" > /dev/null ; then
    AC_DEFINE([GCRYPT_WITH_$1],[1],[Algorithm $1 in gcrypt library])
    AC_MSG_RESULT([yes])
  else
    AC_MSG_RESULT([no])
  fi
])

# AX_LIB_GCRYPT([yes|no|auto])
AC_DEFUN([AX_LIB_GCRYPT],[
  AC_MSG_CHECKING([whether gcrypt is enabled])
  AC_ARG_WITH([gcrypt],[  --with-gcrypt           require gcrypt library
  --without-gcrypt        disable gcrypt library],[
    AC_MSG_RESULT([$withval])
    ac_with_gcrypt=$withval
  ],[
    AC_MSG_RESULT($1)
    ac_with_gcrypt=$1
  ])
  if test "$ac_with_gcrypt" = "yes" -o "$ac_with_gcrypt" = "auto" ; then
    AM_PATH_LIBGCRYPT([1.2.0],[
      AC_DEFINE([HAVE_GCRYPT],[1],[Gcrypt library is available])
      HAVE_GCRYPT=1
      # checking for available algorithms...
      gcrypt_algos=`$LIBGCRYPT_CONFIG --algorithms`
      # ciphers
      # this does not work with a "for" loop: nothing generated in config.h:-(
      AX_CHECK_GCRYPT_ALGO([AES])
      AX_CHECK_GCRYPT_ALGO([ARCFOUR])
      AX_CHECK_GCRYPT_ALGO([BLOWFISH])
      AX_CHECK_GCRYPT_ALGO([CAST5])
      AX_CHECK_GCRYPT_ALGO([DES])
      AX_CHECK_GCRYPT_ALGO([IDEA])
      AX_CHECK_GCRYPT_ALGO([RFC2268])
      AX_CHECK_GCRYPT_ALGO([SERPENT])
      AX_CHECK_GCRYPT_ALGO([TWOFISH])
      # digests
      AX_CHECK_GCRYPT_ALGO([CRC])
      AX_CHECK_GCRYPT_ALGO([HAVAL])
      AX_CHECK_GCRYPT_ALGO([MD2])
      AX_CHECK_GCRYPT_ALGO([MD4])
      AX_CHECK_GCRYPT_ALGO([MD5])
      AX_CHECK_GCRYPT_ALGO([RMD160])
      AX_CHECK_GCRYPT_ALGO([SHA0])
      AX_CHECK_GCRYPT_ALGO([SHA1])
      AX_CHECK_GCRYPT_ALGO([SHA224])
      AX_CHECK_GCRYPT_ALGO([SHA256])
      AX_CHECK_GCRYPT_ALGO([SHA384])
      AX_CHECK_GCRYPT_ALGO([SHA512])
      AX_CHECK_GCRYPT_ALGO([TIGER])
      AX_CHECK_GCRYPT_ALGO([WHIRLPOOL])
      # others
      AX_CHECK_GCRYPT_ALGO([DSA])
      AX_CHECK_GCRYPT_ALGO([ELGAMAL])
      AX_CHECK_GCRYPT_ALGO([RSA])
      # conclusion
      GCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
      GCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
      AC_SUBST(GCRYPT_CFLAGS)
      AC_SUBST(GCRYPT_LIBS)
    ],[
      # complain only if explicitely required
      if test "$ac_with_gcrypt" = "yes" ; then
        AC_MSG_ERROR([cannot configure required gcrypt library])
      fi
    ])
  fi
])

License

Copyright © 2008 Fabien Coelho <autoconf.archive@coelho.net>

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.