diff options
author | Simon Josefsson <simon@josefsson.org> | 2008-10-08 16:51:27 +0200 |
---|---|---|
committer | Simon Josefsson <simon@josefsson.org> | 2008-10-08 16:51:27 +0200 |
commit | ce23654ab3b8097241c1639ebe3e853c4f67b6d7 (patch) | |
tree | e79a4f6afee1d108a722316a5a3f313b37a1a40e | |
parent | dd1db30fed37f343337409e4afa49510c14c8d11 (diff) | |
download | gnutls-ce23654ab3b8097241c1639ebe3e853c4f67b6d7.tar.gz |
Detect libtasn1 via AC_LIB_HAVE_LINKFLAGS.
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | configure.in | 33 | ||||
-rw-r--r-- | lib/gnutls_global.c | 2 | ||||
-rw-r--r-- | m4/libtasn1.m4 | 160 |
4 files changed, 18 insertions, 179 deletions
@@ -19,6 +19,8 @@ from Thomas Viehmann <tv@beamnet.de>. ** tests: Make tests compile when using internal libtasn1. Patch by ludo@gnu.org (Ludovic Courtès). +** Changed detection of libtasn1 to avoid depending on libtasn1-config. + ** API and ABI modifications: gnutls_x509_crl_get_authority_key_id: ADDED gnutls_x509_crl_get_number: ADDED diff --git a/configure.in b/configure.in index 4f024e576a..cb0a96bce5 100644 --- a/configure.in +++ b/configure.in @@ -42,9 +42,7 @@ SOVERSION=`expr ${LT_CURRENT} - ${LT_AGE}` AC_SUBST(SOVERSION) GNUTLS_GCRYPT_VERSION=1:1.2.4 -GNUTLS_LIBTASN1_VERSION=0.3.4 AC_DEFINE_UNQUOTED(GNUTLS_GCRYPT_VERSION, "$GNUTLS_GCRYPT_VERSION", [version of gcrypt]) -AC_DEFINE_UNQUOTED(GNUTLS_LIBTASN1_VERSION, "$GNUTLS_LIBTASN1_VERSION", [version of libtasn1]) # Compute numeric versions, used in includes/gnutls/gnutls.h.in. AC_SUBST(MAJOR_VERSION, `echo $PACKAGE_VERSION | sed 's/\(.*\)\..*\..*/\1/g'`) @@ -512,26 +510,25 @@ fi AM_CONDITIONAL(ENABLE_OPENSSL, test "$ac_enable_openssl" = "yes") - +# Check for libtasn1 AC_ARG_WITH(included-libtasn1, - AS_HELP_STRING([--with-included-libtasn1], - [use the included libtasn1]), - minitasn1_enabled=$withval, - minitasn1_enabled=no) - -if test x$minitasn1_enabled = xno; then -AM_PATH_LIBTASN1($GNUTLS_LIBTASN1_VERSION,, - minitasn1_enabled=yes - AC_MSG_WARN([[ + AS_HELP_STRING([--with-included-libtasn1], [use the included libtasn1]), + included_libtasn1=$withval, + included_libtasn1=no) +if test "$included_libtasn1" = "no"; then + AC_LIB_HAVE_LINKFLAGS(tasn1,, [#include <libtasn1.h>], + [asn1_check_version (NULL)]) + if test "$ac_cv_libtasn1" != yes; then + included_libtasn1=yes + AC_MSG_WARN([[ *** -*** LibtASN1 ${GNUTLS_LIBTASN1_VERSION} was not found. Will use the included one. -]])) +*** Libtasn1 was not found. Will use the included one. +]]) + fi fi - AC_MSG_CHECKING([whether to use the included minitasn1]) -AC_MSG_RESULT($minitasn1_enabled) - -AM_CONDITIONAL(ENABLE_MINITASN1, test "$minitasn1_enabled" = "yes") +AC_MSG_RESULT($included_libtasn1) +AM_CONDITIONAL(ENABLE_MINITASN1, test "$included_libtasn1" = "yes") if test "$ac_full" != 1; then AC_MSG_WARN([[ diff --git a/lib/gnutls_global.c b/lib/gnutls_global.c index 4eda112735..b9184c9c27 100644 --- a/lib/gnutls_global.c +++ b/lib/gnutls_global.c @@ -266,7 +266,7 @@ gnutls_global_init (void) * version. */ - if (asn1_check_version (GNUTLS_LIBTASN1_VERSION) == NULL) + if (asn1_check_version (LIBTASN1_VERSION) == NULL) { gnutls_assert (); return GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY; diff --git a/m4/libtasn1.m4 b/m4/libtasn1.m4 deleted file mode 100644 index ea2e10f56d..0000000000 --- a/m4/libtasn1.m4 +++ /dev/null @@ -1,160 +0,0 @@ -dnl Autoconf macros for libtasn1 -dnl $id$ - -# Modified for LIBTASN1 -- nmav -# Configure paths for LIBGCRYPT -# Shamelessly stolen from the one of XDELTA by Owen Taylor -# Werner Koch 99-12-09 - -dnl AM_PATH_LIBTASN1([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) -dnl Test for libtasn1, and define LIBTASN1_CFLAGS and LIBTASN1_LIBS -dnl -AC_DEFUN([AM_PATH_LIBTASN1], -[dnl -dnl Get the cflags and libraries from the libtasn1-config script -dnl -AC_ARG_WITH(libtasn1-prefix, - [ --with-libtasn1-prefix=PFX Prefix where libtasn1 is installed (optional)], - libtasn1_config_prefix="$withval", libtasn1_config_prefix="") - - if test x$libtasn1_config_prefix != x ; then - if test x${LIBTASN1_CONFIG+set} != xset ; then - LIBTASN1_CONFIG=$libtasn1_config_prefix/bin/libtasn1-config - fi - fi - - AC_PATH_PROG(LIBTASN1_CONFIG, libtasn1-config, no) - min_libtasn1_version=ifelse([$1], ,0.1.0,$1) - AC_MSG_CHECKING(for libtasn1 - version >= $min_libtasn1_version) - no_libtasn1="" - if test "$LIBTASN1_CONFIG" = "no" ; then - no_libtasn1=yes - else - LIBTASN1_CFLAGS=`$LIBTASN1_CONFIG $libtasn1_config_args --cflags` - LIBTASN1_LIBS=`$LIBTASN1_CONFIG $libtasn1_config_args --libs` - libtasn1_config_version=`$LIBTASN1_CONFIG $libtasn1_config_args --version` - - - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $LIBTASN1_CFLAGS" - LIBS="$LIBS $LIBTASN1_LIBS" -dnl -dnl Now check if the installed libtasn1 is sufficiently new. Also sanity -dnl checks the results of libtasn1-config to some extent -dnl - rm -f conf.libtasn1test - AC_TRY_RUN([ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <libtasn1.h> - -int -main () -{ - system ("touch conf.libtasn1test"); - - if( strcmp( asn1_check_version(NULL), "$libtasn1_config_version" ) ) - { - printf("\n*** 'libtasn1-config --version' returned %s, but LIBTASN1 (%s)\n", - "$libtasn1_config_version", asn1_check_version(NULL) ); - printf("*** was found! If libtasn1-config was correct, then it is best\n"); - printf("*** to remove the old version of LIBTASN1. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If libtasn1-config was wrong, set the environment variable LIBTASN1_CONFIG\n"); - printf("*** to point to the correct copy of libtasn1-config, and remove the file config.cache\n"); - printf("*** before re-running configure\n"); - } - else if ( strcmp(asn1_check_version(NULL), LIBTASN1_VERSION ) ) - { - printf("\n*** LIBTASN1 header file (version %s) does not match\n", LIBTASN1_VERSION); - printf("*** library (version %s)\n", asn1_check_version(NULL) ); - } - else - { - if ( asn1_check_version( "$min_libtasn1_version" ) ) - { - return 0; - } - else - { - printf("no\n*** An old version of LIBTASN1 (%s) was found.\n", - asn1_check_version(NULL) ); - printf("*** You need a version of LIBTASN1 newer than %s. The latest version of\n", - "$min_libtasn1_version" ); - printf("*** LIBTASN1 is always available from ftp://gnutls.hellug.gr/pub/gnutls/libtasn1.\n"); - printf("*** \n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the libtasn1-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of LIBTASN1, but you can also set the LIBTASN1_CONFIG environment to point to the\n"); - printf("*** correct copy of libtasn1-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} -],, no_libtasn1=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - - if test "x$no_libtasn1" = x ; then - AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) - else - if test -f conf.libtasn1test ; then - : - else - AC_MSG_RESULT(no) - fi - if test "$LIBTASN1_CONFIG" = "no" ; then - echo "*** The libtasn1-config script installed by LIBTASN1 could not be found" - echo "*** If LIBTASN1 was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the LIBTASN1_CONFIG environment variable to the" - echo "*** full path to libtasn1-config." - else - if test -f conf.libtasn1test ; then - : - else - echo "*** Could not run libtasn1 test program, checking why..." - CFLAGS="$CFLAGS $LIBTASN1_CFLAGS" - LIBS="$LIBS $LIBTASN1_LIBS" - AC_TRY_LINK([ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <libtasn1.h> -], [ return !!asn1_check_version(NULL); ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding LIBTASN1 or finding the wrong" - echo "*** version of LIBTASN1. If it is not finding LIBTASN1, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" - echo "***" ], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means LIBTASN1 was incorrectly installed" - echo "*** or that you have moved LIBTASN1 since it was installed. In the latter case, you" - echo "*** may want to edit the libtasn1-config script: $LIBTASN1_CONFIG" ]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - LIBTASN1_CFLAGS="" - LIBTASN1_LIBS="" - ifelse([$3], , :, [$3]) - fi - rm -f conf.libtasn1test - AC_SUBST(LIBTASN1_CFLAGS) - AC_SUBST(LIBTASN1_LIBS) -]) - -dnl *-*wedit:notab*-* Please keep this as the last line. |