~ruther/guix-local

22b5d9c9a5736b4fac7ddfb33a24c3481920fa4f — Ludovic Courtès 13 years ago d36622d
build-system/gnu: Add `out-of-source?' keyword parameter.

* guix/build/gnu-build-system.scm (configure): Add an `out-of-source?'
  keyword parameter; build out-of-source-tree when #t.
* guix/build-system/gnu.scm (gnu-build): Add `out-of-source?' keyword
  parameter.  Pass it in BUILDER.
2 files changed, 15 insertions(+), 3 deletions(-)

M guix/build-system/gnu.scm
M guix/build/gnu-build-system.scm
M guix/build-system/gnu.scm => guix/build-system/gnu.scm +2 -0
@@ 46,6 46,7 @@
                    #:key (outputs '("out")) (configure-flags ''())
                    (make-flags ''())
                    (patches ''()) (patch-flags ''("--batch" "-p1"))
                    (out-of-source? #f)
                    (tests? #t)
                    (parallel-build? #t) (parallel-tests? #t)
                    (patch-shebangs? #t)


@@ 68,6 69,7 @@ input derivation INPUTS, using the usual procedure of the GNU Build System."
                  #:phases ,phases
                  #:configure-flags ,configure-flags
                  #:make-flags ,make-flags
                  #:out-of-source? ,out-of-source?
                  #:tests? ,tests?
                  #:parallel-build? ,parallel-build?
                  #:parallel-tests? ,parallel-tests?

M guix/build/gnu-build-system.scm => guix/build/gnu-build-system.scm +13 -3
@@ 74,7 74,8 @@
                         (append patch-flags (list p)))))
         patches))

(define* (configure #:key outputs (configure-flags '()) #:allow-other-keys)
(define* (configure #:key outputs (configure-flags '()) out-of-source?
                    #:allow-other-keys)
  (let* ((prefix     (assoc-ref outputs "out"))
         (libdir     (assoc-ref outputs "lib"))
         (includedir (assoc-ref outputs "include"))


@@ 90,9 91,18 @@
                             (list (string-append "--includedir="
                                                  includedir "/include"))
                             '())
                       ,@configure-flags)))
                       ,@configure-flags))
         (srcdir     (getcwd)))
    (format #t "source directory: ~s~%" srcdir)
    (if out-of-source?
        (begin
          (mkdir "../build")
          (chdir "../build")))
    (format #t "build directory: ~s~%" (getcwd))
    (format #t "configure flags: ~s~%" flags)
    (zero? (apply system* "./configure" flags))))
    (zero? (apply system*
                  (string-append (if out-of-source? srcdir ".") "/configure")
                  flags))))

(define* (build #:key (make-flags '()) (parallel-build? #t)
                #:allow-other-keys)