diff options
author | Pierre Neidhardt <mail@ambrevar.xyz> | 2019-08-25 12:28:28 +0200 |
---|---|---|
committer | Pierre Neidhardt <mail@ambrevar.xyz> | 2019-08-25 12:28:28 +0200 |
commit | d0480ca1a218361c449defbc653fe460f5f2f329 (patch) | |
tree | 3d4be4fea33eafed928ca2f40140a07bb7548648 | |
parent | 3d76112769d2149e81b7cc774d859469d1f1909e (diff) |
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".
-rw-r--r-- | gnu/packages/lisp.scm | 17 |
1 files changed, 15 insertions, 2 deletions
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")) |