Detection based on gnutls_session doesn't work because GnuTLS 2.x.y
comes with a compat.h that defines gnutls_session to gnutls_session_t.
Instead detect this based on LIBGNUTLS_VERSION_MAJOR.
---
configure.ac | 22 +++++++++++++++-------
1 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index c8d291b..6a20366 100644
--- a/configure.ac
+++ b/configure.ac
@@ -834,17 +834,25 @@ fi
AC_SUBST([GNUTLS_CFLAGS])
AC_SUBST([GNUTLS_LIBS])
-dnl Old versions of GnuTLS uses types like 'gnutls_session' instead
-dnl of 'gnutls_session_t'. Try to detect this type if defined so
-dnl that we can offer backwards compatibility.
+dnl Detect GnuTLS 1.x.y and enable backwards compatibility macros if found.
old_cflags="$CFLAGS"
old_libs="$LIBS"
CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
LIBS="$LIBS $GNUTLS_LIBS"
-AC_CHECK_TYPE([gnutls_session],
- AC_DEFINE([GNUTLS_1_0_COMPAT],[],
- [enable GnuTLS 1.0 compatibility macros]),,
- [#include <gnutls/gnutls.h>])
+AC_MSG_CHECKING([whether GnuTLS 1.0 compatibility macros are required])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gnutls/gnutls.h>]],
+ [[
+ #if LIBGNUTLS_VERSION_MAJOR < 2
+ # error gnutls 1.x.y detected
+ #endif
+ ]])],
+ [have_gnutlsv1=no],
+ [have_gnutlsv1=yes])
+if test "x$have_gnutlsv1" = xyes; then
+ AC_DEFINE_UNQUOTED([GNUTLS_1_0_COMPAT], 1,
+ [enable GnuTLS 1.0 compatibility macros])
+fi
+AC_MSG_RESULT([$have_gnutlsv1])
CFLAGS="$old_cflags"
LIBS="$old_libs"
--
1.7.4.1