build: Automatically determine libgcrypt's file name.

* m4/guix.m4 (GUIX_LIBGCRYPT_LIBDIR): New macro.
* configure.ac: Use it when no --with-libgcrypt-* option was passed.
* README: Do not recommend --with-libgcrypt-prefix.

Co-authored-by: 宋文武 <iyzsong@gmail.com>
This commit is contained in:
Ludovic Courtès 2015-10-06 22:09:40 +02:00
parent 04d1ab3bf5
commit dd01fecd23
3 changed files with 32 additions and 15 deletions

1
README
View file

@ -59,7 +59,6 @@ To do so:
guix environment guix guix environment guix
- Re-run the 'configure' script passing it the option - Re-run the 'configure' script passing it the option
'--with-libgcrypt-prefix=$HOME/.guix-profile/', as well as
'--localstatedir=/somewhere', where '/somewhere' is the 'localstatedir' '--localstatedir=/somewhere', where '/somewhere' is the 'localstatedir'
value of the currently installed Guix (failing to do that would lead the value of the currently installed Guix (failing to do that would lead the
new Guix to consider the store to be empty!). new Guix to consider the store to be empty!).

View file

@ -132,23 +132,21 @@ else
AC_MSG_RESULT([not found]) AC_MSG_RESULT([not found])
fi fi
LIBGCRYPT="libgcrypt"
LIBGCRYPT_LIBDIR="no"
LIBGCRYPT_PREFIX="no"
AC_ARG_WITH([libgcrypt-prefix], AC_ARG_WITH([libgcrypt-prefix],
[AS_HELP_STRING([--with-libgcrypt-prefix=DIR], [search for GNU libgcrypt in DIR])], [AS_HELP_STRING([--with-libgcrypt-prefix=DIR], [search for GNU libgcrypt in DIR])],
[case "$withval" in [case "$withval" in
yes|no) yes|no)
LIBGCRYPT="libgcrypt"
LIBGCRYPT_PREFIX="no"
LIBGCRYPT_LIBDIR="no"
;; ;;
*) *)
LIBGCRYPT="$withval/lib/libgcrypt" LIBGCRYPT="$withval/lib/libgcrypt"
LIBGCRYPT_PREFIX="$withval" LIBGCRYPT_PREFIX="$withval"
LIBGCRYPT_LIBDIR="$withval/lib" LIBGCRYPT_LIBDIR="$withval/lib"
;; ;;
esac], esac])
[LIBGCRYPT="libgcrypt"
LIBGCRYPT_PREFIX="no"
LIBGCRYPT_LIBDIR="no"])
AC_ARG_WITH([libgcrypt-libdir], AC_ARG_WITH([libgcrypt-libdir],
[AS_HELP_STRING([--with-libgcrypt-libdir=DIR], [AS_HELP_STRING([--with-libgcrypt-libdir=DIR],
@ -162,13 +160,18 @@ AC_ARG_WITH([libgcrypt-libdir],
LIBGCRYPT="$withval/libgcrypt" LIBGCRYPT="$withval/libgcrypt"
LIBGCRYPT_LIBDIR="$withval" LIBGCRYPT_LIBDIR="$withval"
;; ;;
esac], esac])
[if test "x$LIBGCRYPT" = x; then
LIBGCRYPT="libgcrypt" dnl If none of the --with-libgcrypt-* options was used, try to determine the
dnl absolute file name of libgcrypt.so.
case "x$LIBGCRYPT_PREFIX$LIBGCRYPT_LIBDIR" in
xnono)
GUIX_LIBGCRYPT_LIBDIR([LIBGCRYPT_LIBDIR])
if test "x$LIBGCRYPT_LIBDIR" != x; then
LIBGCRYPT="$LIBGCRYPT_LIBDIR/libgcrypt"
fi fi
if test "x$LIBGCRYPT_LIBDIR" = x; then ;;
LIBGCRYPT_LIBDIR="no" esac
fi])
dnl Library name suitable for `dynamic-link'. dnl Library name suitable for `dynamic-link'.
AC_MSG_CHECKING([for libgcrypt shared library name]) AC_MSG_CHECKING([for libgcrypt shared library name])

View file

@ -270,3 +270,18 @@ AC_DEFUN([GUIX_CHECK_LIBC_MOUNT], [
guix_cv_libc_has_mount="no" guix_cv_libc_has_mount="no"
fi]) fi])
]) ])
dnl GUIX_LIBGCRYPT_LIBDIR VAR
dnl
dnl Attempt to determine libgcrypt's LIBDIR; store the result in VAR.
AC_DEFUN([GUIX_LIBGCRYPT_LIBDIR], [
AC_PATH_PROG([LIBGCRYPT_CONFIG], [libgcrypt-config])
AC_CACHE_CHECK([libgcrypt's library directory],
[guix_cv_libgcrypt_libdir],
[if test "x$LIBGCRYPT_CONFIG" != "x"; then
guix_cv_libgcrypt_libdir=`$LIBGCRYPT_CONFIG --libs | sed -e "s/.*-L\([[^ ]]\+\)[[[:blank:]]]\+-lgcrypt.*/\1/g"`
else
guix_cv_libgcrypt_libdir=""
fi])
$1="$guix_cv_libgcrypt_libdir"
])