diff options
author | Werner Koch <wk@gnupg.org> | 2002-08-23 18:41:29 +0000 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2002-08-23 18:41:29 +0000 |
commit | 1f33736a7a2bc4734d1096ddf8e2468662ba7de6 (patch) | |
tree | de3c251081c33937dd03d9a6f9c9bdb807f7a83b /src/libgcrypt.m4 | |
parent | 4150841ffbde602dfe602319092c9da63b74c3e4 (diff) | |
download | libgcrypt-1f33736a7a2bc4734d1096ddf8e2468662ba7de6.tar.gz |
* missing-string.c: Removed unneeded strlwr.
* libgcrypt.m4: Made much more simple.
* libgcrypt-config.in: Made --prefix work for --libs.
Diffstat (limited to 'src/libgcrypt.m4')
-rw-r--r-- | src/libgcrypt.m4 | 199 |
1 files changed, 56 insertions, 143 deletions
diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4 index 6bd1784f..b57b5b33 100644 --- a/src/libgcrypt.m4 +++ b/src/libgcrypt.m4 @@ -1,24 +1,24 @@ dnl Autoconf macros for libgcrypt -dnl $id$ +dnl Copyright (C) 2002 Free Software Foundation, Inc. +dnl +dnl This file is free software; as a special exception the author gives +dnl unlimited permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl +dnl This file is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# Configure paths for LIBGCRYPT -# Shamelessly stolen from the one of XDELTA by Owen Taylor -# Werner Koch 99-12-09 -dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) -dnl Test for libgcrypt, and define GCRYPT_CFLAGS and GCRYPT_LIBS +dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION, +dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]]) +dnl Test for liblibgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS dnl AC_DEFUN(AM_PATH_LIBGCRYPT, -[dnl -dnl Get the cflags and libraries from the libgcrypt-config script -dnl -AC_ARG_WITH(libgcrypt-prefix, - [ --with-libgcrypt-prefix=PFX Prefix where libgcrypt is installed (optional)], - libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") -AC_ARG_ENABLE(libgcrypttest, - [ --disable-libgcrypttest Do not try to compile and run a test libgcrypt program], - , enable_libgcrypttest=yes) - +[ AC_ARG_WITH(libgcrypt-prefix, + AC_HELP_STRING([--with-libgcrypt-prefix=PFX], + [prefix where LIBGCRYPT is installed (optional)]), + libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="") if test x$libgcrypt_config_prefix != x ; then libgcrypt_config_args="$libgcrypt_config_args --prefix=$libgcrypt_config_prefix" if test x${LIBGCRYPT_CONFIG+set} != xset ; then @@ -27,137 +27,50 @@ AC_ARG_ENABLE(libgcrypttest, fi AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no) - min_libgcrypt_version=ifelse([$1], ,1.1.0,$1) - AC_MSG_CHECKING(for libgcrypt - version >= $min_libgcrypt_version) - no_libgcrypt="" - if test "$LIBGCRYPT_CONFIG" = "no" ; then - no_libgcrypt=yes - else - LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --cflags` - LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --libs` + min_libgcrypt_version=ifelse([$1], ,0.4.4,$1) + AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version) + ok=no + 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 $libgcrypt_config_args --version` - if test "x$enable_libgcrypttest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS" - LIBS="$LIBS $LIBGCRYPT_LIBS" -dnl -dnl Now check if the installed libgcrypt is sufficiently new. Also sanity -dnl checks the results of libgcrypt-config to some extent -dnl - rm -f conf.libgcrypttest - AC_TRY_RUN([ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <gcrypt.h> - -int -main () -{ - system ("touch conf.libgcrypttest"); - - if( strcmp( gcry_check_version(NULL), "$libgcrypt_config_version" ) ) - { - printf("\n*** 'libgcrypt-config --version' returned %s, but LIBGCRYPT (%s)\n", - "$libgcrypt_config_version", gcry_check_version(NULL) ); - printf("*** was found! If libgcrypt-config was correct, then it is best\n"); - printf("*** to remove the old version of LIBGCRYPT. 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 libgcrypt-config was wrong, set the environment variable LIBGCRYPT_CONFIG\n"); - printf("*** to point to the correct copy of libgcrypt-config, and remove the file config.cache\n"); - printf("*** before re-running configure\n"); - } - else if ( strcmp(gcry_check_version(NULL), GCRYPT_VERSION ) ) - { - printf("\n*** LIBGCRYPT header file (version %s) does not match\n", GCRYPT_VERSION); - printf("*** library (version %s)\n", gcry_check_version(NULL) ); - } - else - { - if ( gcry_check_version( "$min_libgcrypt_version" ) ) - { - return 0; - } - else - { - printf("no\n*** An old version of LIBGCRYPT (%s) was found.\n", - gcry_check_version(NULL) ); - printf("*** You need a version of LIBGCRYPT newer than %s. The latest version of\n", - "$min_libgcrypt_version" ); - printf("*** LIBGCRYPT is always available from ftp://ftp.gnupg.org/pub/libgcrypt/gnupg.\n"); - printf("*** (It is distributed along with GnuPG).\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 libgcrypt-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of LIBGCRYPT, but you can also set the LIBGCRYPT_CONFIG environment to point to the\n"); - printf("*** correct copy of libgcrypt-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_libgcrypt=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi + 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 - if test "x$no_libgcrypt" = x ; then - AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) + if test $ok = yes; then + LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --cflags` + LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG $libgcrypt_config_args --libs` + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) else - if test -f conf.libgcrypttest ; then - : - else - AC_MSG_RESULT(no) - fi - if test "$LIBGCRYPT_CONFIG" = "no" ; then - echo "*** The libgcrypt-config script installed by LIBGCRYPT could not be found" - echo "*** If LIBGCRYPT was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the LIBGCRYPT_CONFIG environment variable to the" - echo "*** full path to libgcrypt-config." - else - if test -f conf.libgcrypttest ; then - : - else - echo "*** Could not run libgcrypt test program, checking why..." - CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS" - LIBS="$LIBS $LIBGCRYPT_LIBS" - AC_TRY_LINK([ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <gcrypt.h> -], [ return !!gcry_check_version(NULL); ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding LIBGCRYPT or finding the wrong" - echo "*** version of LIBGCRYPT. If it is not finding LIBGCRYPT, 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 LIBGCRYPT was incorrectly installed" - echo "*** or that you have moved LIBGCRYPT since it was installed. In the latter case, you" - echo "*** may want to edit the libgcrypt-config script: $LIBGCRYPT_CONFIG" ]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - LIBGCRYPT_CFLAGS="" - LIBGCRYPT_LIBS="" - ifelse([$3], , :, [$3]) + LIBGCRYPT_CFLAGS="" + LIBGCRYPT_LIBS="" + AC_MSG_RESULT(no) + ifelse([$3], , :, [$3]) fi AC_SUBST(LIBGCRYPT_CFLAGS) AC_SUBST(LIBGCRYPT_LIBS) - rm -f conf.libgcrypttest ]) - -dnl *-*wedit:notab*-* Please keep this as the last line. |