diff --git a/doc/guix.texi b/doc/guix.texi index e7b233d..8d332f6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2452,12 +2452,35 @@ The @code{arguments} field specifies options for the build system @var{gnu-build-system} as a request run @file{configure} with the @code{--enable-silent-rules} flag. +@cindex quote +@cindex quoting +@cindex backquote (quasiquote) +What about these backquote (@code{`}) and quote (@code{'}) characters? +They are Scheme syntax to introduce a literal data structure; @code{'} +is synonymous with @code{quote}, and @code{`} is synonymous with +@code{quasiquote}. @xref{Expression Syntax, quoting,, guile, GNU Guile +Reference Manual}, for details. Here the value of the @code{arguments} +field is a list of arguments passed to the build system. + +The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} +(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and +@code{#:configure-flags} is a keyword used to pass a keyword argument +to the build system (@pxref{Coding With Keywords,,, guile, GNU Guile +Reference Manual}). + @item The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package. Here, we define an input called @code{"gawk"} whose value is that of the @var{gawk} variable; @var{gawk} is itself bound to a @code{} object. +@cindex comma (unquote) +Again, @code{`} (@code{quasiquote}) allows us to introduce a literal +list in the @code{inputs} field, while @code{,} (a comma, synonymous +with @code{unquote}) allows us to insert a value in the list +(@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference +Manual}). + Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here. Instead, @var{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems}).