makefile alternatives and similar packages
Based on the "Parsing" category.
Alternatively, view makefile alternatives based on common mentions on social networks and blogs.
-
trifecta
Parser combinators with highlighting, slicing, layout, literate comments, Clang-style diagnostics and the kitchen sink -
incremental-parser
Haskell parsing combinator liibrary that can be fed the input and emit the parsed output incrementally -
record-syntax
A library for parsing and processing the Haskell syntax sprinkled with anonymous records
InfluxDB – Built for High-Performance Time Series Workloads

Do you think we are missing an alternative of makefile or a related project?
README
Haskell Makefile Parser and Generator
Parse and generate Makefile
s. The project is available on hackage
(latest).
Example
Parsing
# Define compiler
CC:=gcc
# Define lazy compiler
LC=ghc
all: hello
hello: foo bar
$(CC) baz.o
Running parseMakefile :: IO (Either String Makefile)
(pretty-printed for
convenience):
Right
( Makefile
{ entries =
[ Assignment SimpleAssign "CC" "gcc"
, Assignment RecursiveAssign "LC" "ghc"
, Rule
(Target "all")
[Dependency "hello"]
[]
, Rule
(Target "hello")
[ Dependency "foo"
, Dependency "bar"
]
[Command "$(CC) baz.o"]
]
}
)
Generating
myMakefile :: Makefile
myMakefile =
Makefile
{ entries =
[ Assignment SimpleAssign "foo" "bar"
, Rule (Target "baz") [Dependency "qux"] [Command "rm -rf /"]
]
}
Running encodeMakefile :: Makefile -> Text
:
foo:=bar
baz: qux
rm -rf /
Release checklist
Make sure you're on (latest) master.
Bump the version in
makefile.cabal
:0.MAJOR.MINOR.PATCH
.
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes, MINOR version when you add functionality in a backwards-compatible manner, and PATCH version when you make backwards-compatible bug fixes.
- Commit the updated
makefile.cabal
file with commit nameRelease v1.MAJOR.MINOR.PATCH
, as well as the updated documentation. - Tag the commit with
git tag v1.MAJOR.MINOR.PATCH
. - Run
stack upload --pvp-bounds both .
to uploadmakefile
tohackage
. - Push with
git push --follow-tags
.