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:
		
							parent
							
								
									93a0a8b3fd
								
							
						
					
					
						commit
						3a310cc017
					
				
					 3 changed files with 24 additions and 2 deletions
				
			
		|  | @ -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)"					\ | ||||
|  |  | |||
							
								
								
									
										17
									
								
								configure.ac
									
										
									
									
									
								
							
							
						
						
									
										17
									
								
								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]) | ||||
|  |  | |||
|  | @ -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) | ||||
|  |  | |||
		Reference in a new issue