build: Add `--with-libgcrypt-prefix'; capture the path to libgcrypt.

* configure.ac: Add `--with-libgcrypt-prefix'.  Substitute `LIBGCRYPT'.

* Makefile.am (.scm.go): Pass $(LIBGCRYPT).

* guix/utils.scm (%libgcrypt): New variable.
  (sha256): Use it.
This commit is contained in:
Ludovic Courtès 2012-08-17 10:41:27 +02:00
parent 93a0a8b3fd
commit 3a310cc017
3 changed files with 24 additions and 2 deletions

View File

@ -75,6 +75,7 @@ CLEANFILES = $(GOBJECTS) *.log
$(MKDIR_P) `dirname "$@"`
NIX_INSTANTIATE="$(NIX_INSTANTIATE)" \
NIXPKGS="$(NIXPKGS)" \
LIBGCRYPT="$(LIBGCRYPT)" \
GUILE_AUTO_COMPILE=0 \
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
$(GUILD) compile -L "$(top_srcdir)" \

View File

@ -58,6 +58,23 @@ else
AC_MSG_WARN([Please use `--with-nixpkgs'.])
fi
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="$withval/lib/libgcrypt"
;;
esac],
[LIBGCRYPT="libgcrypt"])
dnl Library name suitable for `dynamic-link'.
AC_MSG_CHECKING([for libgcrypt shared library name])
AC_MSG_RESULT([$LIBGCRYPT])
AC_SUBST([LIBGCRYPT])
AC_CONFIG_FILES([Makefile
po/Makefile.in
guix-build])

View File

@ -384,14 +384,18 @@ starting from the right of S."
;;; Hash.
;;;
(define %libgcrypt
;; Name of the libgcrypt shared library.
(compile-time-value (or (getenv "LIBGCRYPT") "libgcrypt")))
(define sha256
(cond
((compile-time-value
(false-if-exception (dynamic-link "libgcrypt")))
(false-if-exception (dynamic-link %libgcrypt)))
;; Using libgcrypt.
(let ((hash (pointer->procedure void
(dynamic-func "gcry_md_hash_buffer"
(dynamic-link "libgcrypt"))
(dynamic-link %libgcrypt))
`(,int * * ,size_t)))
(sha256 8)) ; GCRY_MD_SHA256, as of 1.5.0
(lambda (bv)