summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorFederico Beffa <beffa@fbengineering.ch>2015-03-27 09:36:56 +0100
committerFederico Beffa <beffa@fbengineering.ch>2015-04-04 09:11:31 +0200
commit14dfdf2e0e4d1f18bcc1becf87aef932d5721d91 (patch)
treedb925f4f9d24613cdc0a12749f75797585315642 /doc
parent5868a8bf9debed5cc3e62da23cf042189f7f7f69 (diff)
downloadguix-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.texi19
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,