gnu-build-system: Improve the configure' and check' phases.

* guix/build/gnu-build-system.scm (configure): Print the final list of
  flags.
  (check): Add `tests?' keyword parameter.
This commit is contained in:
Ludovic Courtès 2012-07-01 17:32:03 +02:00
parent 18a8dad70c
commit a1232d0cb8

View File

@ -57,27 +57,35 @@
(chdir (first-subdirectory ".")))) (chdir (first-subdirectory "."))))
(define* (configure #:key outputs (configure-flags '()) #:allow-other-keys) (define* (configure #:key outputs (configure-flags '()) #:allow-other-keys)
(let ((prefix (assoc-ref outputs "out")) (let* ((prefix (assoc-ref outputs "out"))
(libdir (assoc-ref outputs "lib")) (libdir (assoc-ref outputs "lib"))
(includedir (assoc-ref outputs "include"))) (includedir (assoc-ref outputs "include"))
(format #t "configure flags: ~s~%" configure-flags) (flags `(,(string-append "--prefix=" prefix)
(zero? (apply system* "./configure" "--enable-fast-install" ; when using Libtool
"--enable-fast-install"
(string-append "--prefix=" prefix) ;; Produce multiple outputs when specific output names
`(,@(if libdir ;; are recognized.
(list (string-append "--libdir=" libdir "/lib")) ,@(if libdir
'()) (list (string-append "--libdir=" libdir "/lib"))
,@(if includedir '())
(list (string-append "--includedir=" ,@(if includedir
includedir "/include")) (list (string-append "--includedir="
'()) includedir "/include"))
,@configure-flags))))) '())
,@configure-flags)))
(format #t "configure flags: ~s~%" flags)
(zero? (apply system* "./configure" flags))))
(define* (build #:key (make-flags '()) #:allow-other-keys) (define* (build #:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" make-flags))) (zero? (apply system* "make" make-flags)))
(define* (check #:key (make-flags '()) #:allow-other-keys) (define* (check #:key (make-flags '()) (tests? #t) (test-target "check")
(zero? (apply system* "make" "check" make-flags))) #:allow-other-keys)
(if tests?
(zero? (apply system* "make" test-target make-flags))
(begin
(format #t "test suite not run~%")
#t)))
(define* (install #:key (make-flags '()) #:allow-other-keys) (define* (install #:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "install" make-flags))) (zero? (apply system* "make" "install" make-flags)))