summaryrefslogtreecommitdiff
path: root/gnu/packages/linux.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-05-13 12:20:57 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2024-05-29 22:01:23 -0400
commitc3566fccb6fa25b70bf2e78fafe71f9048a6a719 (patch)
treee090f93e65c9487b235ff39d8736c91d63b1ca2a /gnu/packages/linux.scm
parente7afa035d42f0feb9dff8ea66a3686e44bd22802 (diff)
downloadguix-patches-c3566fccb6fa25b70bf2e78fafe71f9048a6a719.tar
guix-patches-c3566fccb6fa25b70bf2e78fafe71f9048a6a719.tar.gz
gnu: make-linux-libre*: Run install targets in parallel.
This reduces the total build time by about 20%. * gnu/packages/linux.scm (make-linux-libre*) [phases] {install}: Ensure that -jN is used for the install targets. Also honor make flags. Change-Id: Ib3f4fdcbdeab736315a91eafa8d6d1dff5b89884
Diffstat (limited to 'gnu/packages/linux.scm')
-rw-r--r--gnu/packages/linux.scm41
1 files changed, 24 insertions, 17 deletions
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 69cb8c878b..d061935c8c 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1076,9 +1076,15 @@ ARCH and optionally VARIANT, or #f if there is no such configuration."
(close-port port))
(invoke "make" "oldconfig"))))
(replace 'install
- (lambda _
+ (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
(let ((moddir (string-append #$output "/lib/modules"))
- (dtbdir (string-append #$output "/lib/dtbs")))
+ (dtbdir (string-append #$output "/lib/dtbs"))
+ (make-flags
+ (append make-flags
+ (list "-j"
+ (if parallel-build?
+ (number->string (parallel-job-count))
+ "1")))))
;; Install kernel image, kernel configuration and link map.
(for-each (lambda (file) (install-file file #$output))
(find-files "." "^(\\.config|bzImage|zImage|Image\
@@ -1086,22 +1092,23 @@ ARCH and optionally VARIANT, or #f if there is no such configuration."
;; Install device tree files
(unless (null? (find-files "." "\\.dtb$"))
(mkdir-p dtbdir)
- (invoke "make" (string-append "INSTALL_DTBS_PATH=" dtbdir)
- "dtbs_install"))
+ (apply invoke "make"
+ (string-append "INSTALL_DTBS_PATH=" dtbdir)
+ "dtbs_install" make-flags))
;; Install kernel modules
(mkdir-p moddir)
- (invoke "make"
- ;; Disable depmod because the Guix system's module
- ;; directory is an union of potentially multiple
- ;; packages. It is not possible to use depmod to
- ;; usefully calculate a dependency graph while
- ;; building only one of them.
- "DEPMOD=true"
- (string-append "MODULE_DIR=" moddir)
- (string-append "INSTALL_PATH=" #$output)
- (string-append "INSTALL_MOD_PATH=" #$output)
- "INSTALL_MOD_STRIP=1"
- "modules_install")
+ (apply invoke "make"
+ ;; Disable depmod because the Guix system's module
+ ;; directory is an union of potentially multiple
+ ;; packages. It is not possible to use depmod to
+ ;; usefully calculate a dependency graph while building
+ ;; only one of them.
+ "DEPMOD=true"
+ (string-append "MODULE_DIR=" moddir)
+ (string-append "INSTALL_PATH=" #$output)
+ (string-append "INSTALL_MOD_PATH=" #$output)
+ "INSTALL_MOD_STRIP=1"
+ "modules_install" make-flags)
(let* ((versions (filter (lambda (name)
(not (string-prefix? "." name)))
(scandir moddir)))
@@ -1123,7 +1130,7 @@ ARCH and optionally VARIANT, or #f if there is no such configuration."
elfutils ;needed to enable CONFIG_STACK_VALIDATION
flex
bison
- util-linux ;needed for hexdump
+ util-linux ;needed for hexdump
;; These are needed to compile the GCC plugins.
gmp
mpfr