~ruther/guix-local

dd01fecd23a4ded46b99a51dc08ac5d964dbcd53 — Ludovic Courtès 10 years ago 04d1ab3
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>
3 files changed, 32 insertions(+), 15 deletions(-)

M README
M configure.ac
M m4/guix.m4
M README => README +0 -1
@@ 59,7 59,6 @@ To do so:
      guix environment guix

  - 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'
    value of the currently installed Guix (failing to do that would lead the
    new Guix to consider the store to be empty!).

M configure.ac => configure.ac +17 -14
@@ 132,23 132,21 @@ else
   AC_MSG_RESULT([not found])
fi

LIBGCRYPT="libgcrypt"
LIBGCRYPT_LIBDIR="no"
LIBGCRYPT_PREFIX="no"

AC_ARG_WITH([libgcrypt-prefix],
  [AS_HELP_STRING([--with-libgcrypt-prefix=DIR], [search for GNU libgcrypt in DIR])],
  [case "$withval" in
    yes|no)
      LIBGCRYPT="libgcrypt"
      LIBGCRYPT_PREFIX="no"
      LIBGCRYPT_LIBDIR="no"
      ;;
    *)
      LIBGCRYPT="$withval/lib/libgcrypt"
      LIBGCRYPT_PREFIX="$withval"
      LIBGCRYPT_LIBDIR="$withval/lib"
      ;;
   esac],
  [LIBGCRYPT="libgcrypt"
   LIBGCRYPT_PREFIX="no"
   LIBGCRYPT_LIBDIR="no"])
   esac])

AC_ARG_WITH([libgcrypt-libdir],
  [AS_HELP_STRING([--with-libgcrypt-libdir=DIR],


@@ 162,13 160,18 @@ AC_ARG_WITH([libgcrypt-libdir],
      LIBGCRYPT="$withval/libgcrypt"
      LIBGCRYPT_LIBDIR="$withval"
      ;;
   esac],
  [if test "x$LIBGCRYPT" = x; then
      LIBGCRYPT="libgcrypt"
   fi
   if test "x$LIBGCRYPT_LIBDIR" = x; then
      LIBGCRYPT_LIBDIR="no"
   fi])
   esac])

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
    ;;
esac

dnl Library name suitable for `dynamic-link'.
AC_MSG_CHECKING([for libgcrypt shared library name])

M m4/guix.m4 => m4/guix.m4 +15 -0
@@ 270,3 270,18 @@ AC_DEFUN([GUIX_CHECK_LIBC_MOUNT], [
       guix_cv_libc_has_mount="no"
     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"
])