~ruther/guix-local

3a310cc017c4bffbee8a6f37569145a593ac2912 — Ludovic Courtès 13 years ago 93a0a8b
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.
3 files changed, 24 insertions(+), 2 deletions(-)

M Makefile.am
M configure.ac
M guix/utils.scm
M Makefile.am => Makefile.am +1 -0
@@ 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)"					\

M configure.ac => configure.ac +17 -0
@@ 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])

M guix/utils.scm => guix/utils.scm +6 -2
@@ 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)