From 8ffe52df47353a3ae31375c0666aa6122bf4cf0b Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Sat, 6 May 2023 15:19:40 +0100 Subject: doc: Use G-Expressions for package definition example. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Build Phases): Use G-Expressions for example. Co-authored-by: Nicolas Goaziou Signed-off-by: Ludovic Courtès --- doc/guix.texi | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) (limited to 'doc') diff --git a/doc/guix.texi b/doc/guix.texi index 55221a10c3..e4b664aba9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10140,23 +10140,31 @@ phase before the @code{build} phase, called ;; other fields omitted (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'set-prefix-in-makefile - (lambda* (#:key outputs #:allow-other-keys) - ;; Modify the makefile so that its - ;; 'PREFIX' variable points to "out". - (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" - (("PREFIX =.*") - (string-append "PREFIX = " - out "\n"))))))))))) + (list + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'set-prefix-in-makefile + (lambda* (#:key inputs #:allow-other-keys) + ;; Modify the makefile so that its + ;; 'PREFIX' variable points to #$output and + ;; 'XMLLINT' points to the correct path. + (substitute* "Makefile" + (("PREFIX =.*") + (string-append "PREFIX = " #$output "\n")) + (("XMLLINT =.*") + (string-append "XMLLINT = " + (search-input-file inputs "/bin/xmllint") + "\n")))))))))) @end lisp The new phase that is inserted is written as an anonymous procedure, -introduced with @code{lambda*}; it honors the @code{outputs} parameter -we have seen before. @xref{Build Utilities}, for more about the helpers -used by this phase, and for more examples of @code{modify-phases}. +introduced with @code{lambda*}; it looks for the @file{xmllint} +executable under a @file{/bin} directory among the package's inputs +(@pxref{package Reference}). It also honors the @code{outputs} parameter +we have seen before. @xref{Build Utilities}, for more about +the helpers used by this phase, and for more examples of +@code{modify-phases}. @cindex code staging @cindex staging, of code -- cgit 1.4.1