~ruther/guix-local

a1232d0cb886c96b721d3f83aefdbc921bd95bc3 — Ludovic Courtès 13 years ago 18a8dad
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.
1 files changed, 25 insertions(+), 17 deletions(-)

M guix/build/gnu-build-system.scm
M guix/build/gnu-build-system.scm => guix/build/gnu-build-system.scm +25 -17
@@ 57,27 57,35 @@
       (chdir (first-subdirectory "."))))

(define* (configure #:key outputs (configure-flags '()) #:allow-other-keys)
  (let ((prefix     (assoc-ref outputs "out"))
        (libdir     (assoc-ref outputs "lib"))
        (includedir (assoc-ref outputs "include")))
    (format #t "configure flags: ~s~%" configure-flags)
    (zero? (apply system* "./configure"
                  "--enable-fast-install"
                  (string-append "--prefix=" prefix)
                  `(,@(if libdir
                          (list (string-append "--libdir=" libdir "/lib"))
                          '())
                    ,@(if includedir
                          (list (string-append "--includedir="
                                               includedir "/include"))
                          '())
                    ,@configure-flags)))))
  (let* ((prefix     (assoc-ref outputs "out"))
         (libdir     (assoc-ref outputs "lib"))
         (includedir (assoc-ref outputs "include"))
         (flags      `(,(string-append "--prefix=" prefix)
                       "--enable-fast-install"    ; when using Libtool

                       ;; Produce multiple outputs when specific output names
                       ;; are recognized.
                       ,@(if libdir
                              (list (string-append "--libdir=" libdir "/lib"))
                              '())
                       ,@(if includedir
                             (list (string-append "--includedir="
                                                  includedir "/include"))
                             '())
                       ,@configure-flags)))
    (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* (check #:key (make-flags '()) #:allow-other-keys)
  (zero? (apply system* "make" "check" make-flags)))
(define* (check #:key (make-flags '()) (tests? #t) (test-target "check")
                #: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)
  (zero? (apply system* "make" "install" make-flags)))