diff options
author | Federico Beffa <beffa@fbengineering.ch> | 2015-03-27 09:36:56 +0100 |
---|---|---|
committer | Federico Beffa <beffa@fbengineering.ch> | 2015-04-04 09:11:31 +0200 |
commit | 14dfdf2e0e4d1f18bcc1becf87aef932d5721d91 (patch) | |
tree | db925f4f9d24613cdc0a12749f75797585315642 /doc | |
parent | 5868a8bf9debed5cc3e62da23cf042189f7f7f69 (diff) | |
download | guix-14dfdf2e0e4d1f18bcc1becf87aef932d5721d91.tar.gz |
build-system: Add haskell-build-system.
* guix/build-system/haskell.scm: New file. * guix/build/haskell-build-system.scm: New file. * doc/guix.texi: Add section on 'haskell-build-system'.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/guix.texi | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index fdf65c72b9..f7f22e5b8a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1955,6 +1955,25 @@ Python package is used to run the script can be specified with the @code{#:python} parameter. @end defvr +@defvr {Scheme Variable} haskell-build-system +This variable is exported by @code{(guix build-system haskell)}. It +implements the Cabal build procedure used by Haskell packages, which +involves running @code{runhaskell Setup.hs configure +--prefix=/gnu/store/@dots{}} and @code{runhaskell Setup.hs build}. +Instead of installing the package by running @code{runhaskell Setup.hs +install}, to avoid trying to register libraries in the read-only +compiler store directory, the build system uses @code{runhaskell +Setup.hs copy}, followed by @code{runhaskell Setup.hs register}. In +addition, the build system generates the package documentation by +running @code{runhaskell Setup.hs haddock}, unless @code{#:haddock? #f} +is passed. Optional Haddock parameters can be passed with the help of +the @code{#:haddock-flags} parameter. If the file @code{Setup.hs} is +not found, the build system looks for @code{Setup.lhs} instead. + +Which Haskell compiler is used can be specified with the @code{#:haskell} +parameter which defaults to @code{ghc}. +@end defvr + Lastly, for packages that do not need anything as sophisticated, a ``trivial'' build system is provided. It is trivial in the sense that it provides basically no support: it does not pull any implicit inputs, |