-dnl $Id: configure.in,v 1.206 2008-11-22 12:07:26 didg Exp $
+dnl $Id: configure.in,v 1.207 2008-11-30 17:36:08 didg Exp $
dnl configure.in for netatalk
AC_INIT(etc/afpd/main.c)
fi
dnl -- check for libgcrypt, if found enables DHX UAM
-NETATALK_CHECK_LIBGCRYPT
+AM_PATH_LIBGCRYPT([1:1.2.3],[neta_cv_compile_dhx2=yes
+ neta_cv_have_libgcrypt=yes
+ AC_MSG_NOTICE([Enabling DHX2 UAM])
+ AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if the DHX2 modules should be built with libgcrypt])
+ AC_DEFINE(UAM_DHX2, 1, [Define if the DHX2 UAM modules should be compiled])
+ ])
dnl -- look for openssl, if found enables DHX UAM and Randnum UAM
AC_PATH_SSL
+++ /dev/null
-AC_DEFUN([NETATALK_CHECK_LIBGCRYPT], [
- AC_ARG_ENABLE(gcrypt, [ --disable-gcrypt build without gcrypt (limits supported UAMs)])
- if test "x$enable_gcrypt" != "xno" ; then
- ac_save_CFLAGS="$CFLAGS"
- ac_save_LIBS="$LIBS"
- CFLAGS=""
- LIBS=""
- AC_CHECK_LIB([gcrypt], [gcry_cipher_open],, [neta_cv_have_libgcrypt=no])
- case $host in
- *-*-darwin*)
- dnl -- Darwin is a special case: check if version > 1.4.0
- AC_MSG_CHECKING([for correct gcrypt version])
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM([
- #include <gcrypt.h>
- #include <stdio.h>],[
- char*p= GCRYPT_VERSION;
- unsigned int vers;
- vers=atoi(p)*10000;
- p=strchr(p,'.')+1;
- vers+=atoi(p)*100;
- p=strchr(p,'.')+1;
- vers+=atoi(p);
- if (vers<10400) return 1;
- ])],
- [AC_MSG_RESULT([yes])],
- [
- AC_MSG_ERROR([version is < 1.4.0])
- neta_cv_have_libgcrypt=no
- ])
- ;;
- *)
- ;;
- esac
- if test x$neta_cv_have_libgcrypt != xno ; then
- AC_MSG_RESULT([Enabling UAM: DHX2])
- AC_DEFINE(LIBGCRYPT_DHX, 1, [Define if the DHX modules should be built with libgcrypt])
- AC_DEFINE(UAM_DHX2, 1, [Define if the DHX UAM modules should be compiled])
- neta_cv_have_libgcrypt=yes
- neta_cv_compile_dhx2=yes
- LIBGCRYPT_CFLAGS="$CFLAGS"
- LIBGCRYPT_LIBS="$LIBS"
- CFLAGS_REMOVE_USR_INCLUDE(LIBGCRYPT_CFLAGS)
- LIB_REMOVE_USR_LIB(LIBGCRYPT_LIBS)
- AC_SUBST(LIBGCRYPT_CFLAGS)
- AC_SUBST(LIBGCRYPT_LIBS)
- fi
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
-])
\ No newline at end of file
--- /dev/null
+dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION,
+dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
+dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS.
+dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed
+dnl with the API version to also check the API compatibility. Example:
+dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed
+dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using
+dnl this features allows to prevent build against newer versions of libgcrypt
+dnl with a changed API.
+dnl
+AC_DEFUN([AM_PATH_LIBGCRYPT],
+[ AC_ARG_WITH(libgcrypt-dir,
+ AC_HELP_STRING([--with-libgcrypt-dir=PATH],
+ [path where LIBGCRYPT is installed (optional).
+ Must contain lib and include dirs.]),
+ libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
+ if test x$libgcrypt_config_prefix != x ; then
+ if test x${LIBGCRYPT_CONFIG+set} != xset ; then
+ LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config
+ fi
+ fi
+
+ ok=no
+
+if test x$libgcrypt_config_prefix != xno ; then
+
+ AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
+ tmp=ifelse([$1], ,1:1.2.0,$1)
+ if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
+ req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
+ min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
+ else
+ req_libgcrypt_api=0
+ min_libgcrypt_version="$tmp"
+ fi
+
+ AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version)
+ if test "$LIBGCRYPT_CONFIG" != "no" ; then
+ req_major=`echo $min_libgcrypt_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
+ req_minor=`echo $min_libgcrypt_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
+ req_micro=`echo $min_libgcrypt_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
+ libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
+ major=`echo $libgcrypt_config_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+ minor=`echo $libgcrypt_config_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+ micro=`echo $libgcrypt_config_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
+ if test "$major" -gt "$req_major"; then
+ ok=yes
+ else
+ if test "$major" -eq "$req_major"; then
+ if test "$minor" -gt "$req_minor"; then
+ ok=yes
+ else
+ if test "$minor" -eq "$req_minor"; then
+ if test "$micro" -ge "$req_micro"; then
+ ok=yes
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+fi
+ if test $ok = yes; then
+ AC_MSG_RESULT([yes ($libgcrypt_config_version)])
+ else
+ AC_MSG_RESULT(no)
+ fi
+ if test $ok = yes; then
+ # If we have a recent libgcrypt, we should also check that the
+ # API is compatible
+ if test "$req_libgcrypt_api" -gt 0 ; then
+ tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
+ if test "$tmp" -gt 0 ; then
+ AC_MSG_CHECKING([LIBGCRYPT API version])
+ if test "$req_libgcrypt_api" -eq "$tmp" ; then
+ AC_MSG_RESULT([okay])
+ else
+ ok=no
+ AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp])
+ fi
+ fi
+ fi
+ fi
+ if test $ok = yes; then
+ LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
+ LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
+ ifelse([$2], , :, [$2])
+ else
+ LIBGCRYPT_CFLAGS=""
+ LIBGCRYPT_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(LIBGCRYPT_CFLAGS)
+ AC_SUBST(LIBGCRYPT_LIBS)
+])
\ No newline at end of file