[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/3] gnu: ecl: Wrap with PATH, CPATH, LIBRARY_PATH and LD_LIBRARY
From: |
Andy Patterson |
Subject: |
[PATCH 3/3] gnu: ecl: Wrap with PATH, CPATH, LIBRARY_PATH and LD_LIBRARY_PATH |
Date: |
Sun, 24 Jul 2016 21:05:39 -0400 |
* gnu/packages/lisp.scm (ecl)[arguments]: Wrap with PATH, CPATH,
LIBRARY_PATH and LD_LIBRARY_PATH
---
gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 1c7a791..8769410 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2015 Mark H Weaver <address@hidden>
;;; Copyright © 2016 Federico Beffa <address@hidden>
;;; Copyright © 2016 ng0 <address@hidden>
+;;; Copyright © 2016 Andy Patterson <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -33,10 +34,12 @@
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages base)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libffcall)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages readline)
#:use-module (gnu packages libsigsegv)
#:use-module (gnu packages admin)
@@ -117,7 +120,12 @@ interface to the Tk widget system.")
(inputs `(("gmp" ,gmp)
("libatomic-ops" ,libatomic-ops)
("libgc" ,libgc)
- ("libffi" ,libffi)))
+ ("libffi" ,libffi)
+ ("linux-headers" ,linux-libre-headers)
+ ("gcc" ,gcc)
+ ("binutils" ,binutils)
+ ("ld-wrapper" ,(make-ld-wrapper "ld-wrapper" #:binutils
binutils))
+ ("libc" ,glibc)))
(arguments
'(#:tests? #t
#:make-flags `(,(string-append "ECL="
@@ -127,7 +135,28 @@ interface to the Tk widget system.")
#:phases
(modify-phases %standard-phases
(delete 'check)
- (add-after 'install 'check (assoc-ref %standard-phases 'check)))))
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((ecl (assoc-ref outputs "out"))
+ (input-path (lambda (lib path)
+ (string-append
+ (assoc-ref inputs lib) path)))
+ (libraries '("gmp" "libatomic-ops" "libgc" "libffi"
"libc"))
+ (binaries '("gcc" "binutils" "ld-wrapper"))
+ (library-directories
+ (map (lambda (lib) (input-path lib "/lib"))
+ libraries)))
+
+ (wrap-program (string-append ecl "/bin/ecl")
+ `("PATH" prefix
+ ,(map (lambda (binary) (input-path binary "/bin"))
+ binaries))
+ `("CPATH" suffix
+ ,(map (lambda (lib) (input-path lib "/include"))
+ `("linux-headers" ,@libraries)))
+ `("LIBRARY_PATH" suffix ,library-directories)
+ `("LD_LIBRARY_PATH" suffix ,library-directories)))))
+ (add-after 'wrap 'check (assoc-ref %standard-phases 'check)))))
(home-page "http://ecls.sourceforge.net/")
(synopsis "Embeddable Common Lisp")
(description "ECL is an implementation of the Common Lisp language as
--
2.9.1