summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/build-system/emacs.scm2
-rw-r--r--guix/build/emacs-build-system.scm6
2 files changed, 6 insertions, 2 deletions
diff --git a/guix/build-system/emacs.scm b/guix/build-system/emacs.scm
index fc165c21d7..61b9c171b4 100644
--- a/guix/build-system/emacs.scm
+++ b/guix/build-system/emacs.scm
@@ -87,6 +87,7 @@
(test-command #f) ; inferred in emacs-build-system
(phases '%standard-phases)
(outputs '("out"))
+ (lisp-directory #f)
(include (quote %default-include))
(exclude (quote %default-exclude))
(search-paths '())
@@ -105,6 +106,7 @@
(use-modules #$@(sexp->gexp modules))
(emacs-build #:name #$name
#:source #+source
+ #:lisp-directory #$lisp-directory
#:system #$system
#:test-command #$test-command
#:tests? #$tests?
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index ff35547968..ffa6d3cbb0 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -67,7 +67,7 @@ name that has been stripped of the hash and version number."
(strip-store-file-name file) suffix))))
(string-append name suffix))))
-(define* (unpack #:key source #:allow-other-keys)
+(define* (unpack #:key source lisp-directory #:allow-other-keys)
"Unpack SOURCE into the build directory. SOURCE may be a compressed
archive, a directory, or an Emacs Lisp file."
(if (string-suffix? ".el" source)
@@ -76,7 +76,9 @@ archive, a directory, or an Emacs Lisp file."
(chdir "source")
(copy-file source (store-file->elisp-source-file source))
#t)
- (gnu:unpack #:source source)))
+ (begin
+ (gnu:unpack #:source source)
+ (and=> lisp-directory chdir))))
(define* (expand-load-path #:key (prepend-source? #t) #:allow-other-keys)
"Expand EMACSLOADPATH, so that inputs, whose code resides in subdirectories,