summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-08-17 10:41:27 +0200
committerLudovic Courtès <ludo@gnu.org>2012-08-17 10:41:27 +0200
commit3a310cc017c4bffbee8a6f37569145a593ac2912 (patch)
tree6b12926e76b238bd26a5aa4d9e3f2a444c799517
parent93a0a8b3fdced4afe3ac2fb0783944c5d76cb360 (diff)
downloadguix-3a310cc017c4bffbee8a6f37569145a593ac2912.tar.gz
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.
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac17
-rw-r--r--guix/utils.scm8
3 files changed, 24 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 18ebd658e0..b6203eff70 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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)"					\
diff --git a/configure.ac b/configure.ac
index aed8287bfd..821e746fe8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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])
diff --git a/guix/utils.scm b/guix/utils.scm
index cbd51fae73..686175947e 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -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)