devel/cabal port module for building
This manual page documents the behavior of setting
MODULES=devel/cabal in the
Uses cabal(1) to automate packaging Haskell binary projects.
fetch, the dependent packages enumerated in
MODCABAL_MANIFEST are downloaded into the
hackage subdirectory of
post-extract, the dependency sources are unpacked
WORKDIR. Special care is taken to replace
.cabal files if they are updated post-release on hackage. A custom
cabal.project.local file gets created to direct
cabal(1) to the extracted packages and prevent any network
interaction. In rare cases a custom cabal.project is
required. This module automatically copies such files from port's
cabal(1) is invoked to build the executables listed in
devel/cabal-install are added to
BUILD_DEPENDS. This module uses
MASTER_SITES9 to download the sources from
This module parameters:
- Name of the package on hackage (required).
- Version of the package (required).
- Hackage dependencies required by this package, see below.
- data-dir from .cabal file (if executable needs this)
- Numeric revision of .cabal file on hackage if one is needed on top of .cabal file contained in the .tar.gz file.
- passed to cabal v2-build
- custom feature
- Executable target in .cabal file, defaults to hackage package name in
This module adds currently adds no make(1) targets.
Hackage dependencies are listed in
MODCABAL_MANIFEST as space separate triples of
They correspond to the main package values of
The contents of
normally generated by devel/cabal-bundler which
creates a working build plan from hackage dependency information.
To create a new Haskell binary port one would install cabal-bundler port, look up the chosen package version number on hackage. E.g.