| CABAL-MODULE(5) | File Formats Manual | CABAL-MODULE(5) |
cabal-module —
devel/cabal port module for building Haskell
programs
This manual page documents the behavior of setting
MODULES=devel/cabal in the
ports(7) tree.
Uses cabal(1) to
automate packaging Haskell binary projects. During
fetch, the dependent packages enumerated in
MODCABAL_MANIFEST are downloaded into the
hackage subdirectory of
DIST_SUBDIR. During
post-extract, the dependency sources are unpacked
into 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 files into
WRKSRC. During build,
cabal(1) is invoked to build the
executables listed in MODCABAL_EXECUTABLES.
lang/ghc and
devel/cabal-install are added to
BUILD_DEPENDS. This module uses
MASTER_SITES9 to download the sources from
hackage.
This module parameters:
--flags for
cabal(1).MODCABAL_STEM.This module adds currently adds no make(1) targets.
Hackage dependencies are listed in
MODCABAL_MANIFEST as space separate triples of
package
version
revision.
They correspond to the main package values of
MODCABAL_STEM
MODCABAL_VERSION
MODCABAL_REVISION.
The contents of MODCABAL_MANIFEST is
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.
$ cabal-bundler
--openbsd cpphs-1.20
| July 25, 2021 | openbsd |