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.master
parent
d36622dc44
commit
22b5d9c9a5
|
@ -46,6 +46,7 @@
|
||||||
#:key (outputs '("out")) (configure-flags ''())
|
#:key (outputs '("out")) (configure-flags ''())
|
||||||
(make-flags ''())
|
(make-flags ''())
|
||||||
(patches ''()) (patch-flags ''("--batch" "-p1"))
|
(patches ''()) (patch-flags ''("--batch" "-p1"))
|
||||||
|
(out-of-source? #f)
|
||||||
(tests? #t)
|
(tests? #t)
|
||||||
(parallel-build? #t) (parallel-tests? #t)
|
(parallel-build? #t) (parallel-tests? #t)
|
||||||
(patch-shebangs? #t)
|
(patch-shebangs? #t)
|
||||||
|
@ -68,6 +69,7 @@ input derivation INPUTS, using the usual procedure of the GNU Build System."
|
||||||
#:phases ,phases
|
#:phases ,phases
|
||||||
#:configure-flags ,configure-flags
|
#:configure-flags ,configure-flags
|
||||||
#:make-flags ,make-flags
|
#:make-flags ,make-flags
|
||||||
|
#:out-of-source? ,out-of-source?
|
||||||
#:tests? ,tests?
|
#:tests? ,tests?
|
||||||
#:parallel-build? ,parallel-build?
|
#:parallel-build? ,parallel-build?
|
||||||
#:parallel-tests? ,parallel-tests?
|
#:parallel-tests? ,parallel-tests?
|
||||||
|
|
|
@ -74,7 +74,8 @@
|
||||||
(append patch-flags (list p)))))
|
(append patch-flags (list p)))))
|
||||||
patches))
|
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"))
|
(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"))
|
||||||
|
@ -90,9 +91,18 @@
|
||||||
(list (string-append "--includedir="
|
(list (string-append "--includedir="
|
||||||
includedir "/include"))
|
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)
|
(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)
|
(define* (build #:key (make-flags '()) (parallel-build? #t)
|
||||||
#:allow-other-keys)
|
#:allow-other-keys)
|
||||||
|
|
Reference in New Issue