summary refs log tree commit diff
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2019-08-25 12:28:28 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2019-08-25 12:28:28 +0200
commitd0480ca1a218361c449defbc653fe460f5f2f329 (patch)
tree3d4be4fea33eafed928ca2f40140a07bb7548648
parent3d76112769d2149e81b7cc774d859469d1f1909e (diff)
downloadguix-d0480ca1a218361c449defbc653fe460f5f2f329.tar.gz
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.scm17
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"))