summaryrefslogtreecommitdiff
path: root/guix/build/emacs-build-system.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-02-28 19:07:46 +0100
committerMarius Bakke <mbakke@fastmail.com>2020-02-28 19:07:46 +0100
commitd614f0bba90c86c836131eea3ebb9cbd30f19abf (patch)
tree22e6250fc344f86e0e356e0dcad254b95373877a /guix/build/emacs-build-system.scm
parent7fe962788ac330fce18d7cc39f613bb1f961d6ea (diff)
parent20c87138a9ca1bbccef2ee91589f11ec70985555 (diff)
Merge branch 'master' into staging
Diffstat (limited to 'guix/build/emacs-build-system.scm')
-rw-r--r--guix/build/emacs-build-system.scm22
1 files changed, 20 insertions, 2 deletions
diff --git a/guix/build/emacs-build-system.scm b/guix/build/emacs-build-system.scm
index 09de244993..219310cf08 100644
--- a/guix/build/emacs-build-system.scm
+++ b/guix/build/emacs-build-system.scm
@@ -225,6 +225,21 @@ parallel. PARALLEL-TESTS? is ignored when using a non-make TEST-COMMAND."
(parameterize ((%emacs emacs))
(emacs-generate-autoloads elpa-name site-lisp))))
+(define* (enable-autoloads-compilation #:key outputs #:allow-other-keys)
+ "Remove the NO-BYTE-COMPILATION local variable embedded in the generated
+autoload files."
+ (let* ((out (assoc-ref outputs "out"))
+ (autoloads (find-files out "-autoloads.el$")))
+ (substitute* autoloads
+ ((";; no-byte-compile.*") ""))
+ #t))
+
+(define* (validate-compiled-autoloads #:key outputs #:allow-other-keys)
+ "Verify whether the byte compiled autoloads load fine."
+ (let* ((out (assoc-ref outputs "out"))
+ (autoloads (find-files out "-autoloads.elc$")))
+ (emacs-batch-eval (format #f "(mapc #'load '~s)" autoloads))))
+
(define (emacs-package? name)
"Check if NAME correspond to the name of an Emacs package."
(string-prefix? "emacs-" name))
@@ -253,10 +268,13 @@ second hyphen. This corresponds to 'name-version' as used in ELPA packages."
(replace 'check check)
(replace 'install install)
(add-after 'install 'make-autoloads make-autoloads)
- (add-after 'make-autoloads 'patch-el-files patch-el-files)
+ (add-after 'make-autoloads 'enable-autoloads-compilation
+ enable-autoloads-compilation)
+ (add-after 'enable-autoloads-compilation 'patch-el-files patch-el-files)
;; The .el files are byte compiled directly in the store.
(add-after 'patch-el-files 'build build)
- (add-after 'build 'move-doc move-doc)))
+ (add-after 'build 'validate-compiled-autoloads validate-compiled-autoloads)
+ (add-after 'validate-compiled-autoloads 'move-doc move-doc)))
(define* (emacs-build #:key inputs (phases %standard-phases)
#:allow-other-keys #:rest args)