diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2024-05-13 12:20:57 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2024-05-29 22:01:23 -0400 |
commit | c3566fccb6fa25b70bf2e78fafe71f9048a6a719 (patch) | |
tree | e090f93e65c9487b235ff39d8736c91d63b1ca2a /gnu | |
parent | e7afa035d42f0feb9dff8ea66a3686e44bd22802 (diff) | |
download | guix-c3566fccb6fa25b70bf2e78fafe71f9048a6a719.tar.gz guix-c3566fccb6fa25b70bf2e78fafe71f9048a6a719.zip |
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')
-rw-r--r-- | gnu/packages/linux.scm | 41 |
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 |