From febaa885696aefade25a1c615fba8af920565e87 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 7 Jul 2012 16:49:23 +0200 Subject: build-system/gnu: Support parallel builds and tests. * guix/build/gnu-build-system.scm (build): Add `parallel-build?' parameter; honor it and $NIX_BUILD_CORES. (check): Add `parallel-tests?' parameter; likewise. * guix/build-system/gnu.scm (gnu-build): Add `parallel-build?' and `parallel-tests?' parameters. [builder]: Inherit them. --- guix/build/gnu-build-system.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'guix/build') diff --git a/guix/build/gnu-build-system.scm b/guix/build/gnu-build-system.scm index 9035280577..d59b9408a8 100644 --- a/guix/build/gnu-build-system.scm +++ b/guix/build/gnu-build-system.scm @@ -87,13 +87,23 @@ (format #t "configure flags: ~s~%" flags) (zero? (apply system* "./configure" flags)))) -(define* (build #:key (make-flags '()) #:allow-other-keys) - (zero? (apply system* "make" make-flags))) +(define* (build #:key (make-flags '()) (parallel-build? #t) + #:allow-other-keys) + (zero? (apply system* "make" + `(,@(if parallel-build? + `("-j" ,(getenv "NIX_BUILD_CORES")) + '()) + ,@make-flags)))) (define* (check #:key (make-flags '()) (tests? #t) (test-target "check") + (parallel-tests? #t) #:allow-other-keys) (if tests? - (zero? (apply system* "make" test-target make-flags)) + (zero? (apply system* "make" test-target + `(,@(if parallel-tests? + `("-j" ,(getenv "NIX_BUILD_CORES")) + '()) + ,@make-flags))) (begin (format #t "test suite not run~%") #t))) -- cgit v1.2.3