From d0480ca1a218361c449defbc653fe460f5f2f329 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Aug 2019 12:28:28 +0200 Subject: gnu: sbcl: Include source so that standard symbol definitions can be examined. * gnu/packages/lisp.scm (sbcl)[arguments]: Add build-source phase to install source directories "src" and "contrib". --- gnu/packages/lisp.scm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 1945a1bdd8..d32f4b19bd 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -423,8 +423,6 @@ an interpreter, a compiler, a debugger, and much more.") ;; them in HOME, so it needs to be writeable. (add-before 'build 'set-HOME (lambda _ (setenv "HOME" "/tmp") #t)) - ;; TODO: We need to install the source as well (`src/code' directory) - ;; so that "go do definition" can work. (replace 'build (lambda* (#:key outputs #:allow-other-keys) (setenv "CC" "gcc") @@ -445,6 +443,21 @@ an interpreter, a compiler, a debugger, and much more.") (with-directory-excursion "doc/manual" (and (invoke "make" "info") (invoke "make" "dist"))))) + (add-after 'build 'build-source + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (rc (string-append out "/lib/sbcl/sbclrc")) + (source-dir (string-append out "/share/sbcl"))) + (for-each (lambda (p) + (copy-recursively p (string-append source-dir "/" p))) + '("src" "contrib")) + (mkdir-p (dirname rc)) + (with-output-to-file rc + (lambda () + (display + (string-append "(sb-ext:set-sbcl-source-location \"" + source-dir "\")") ))) + #t))) (add-after 'install 'install-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) -- cgit v1.2.3