shake: Build system library, like Make, but more accurate dependencies.
Shake is a Haskell library for writing build systems - designed as a
make. See Development.Shake for an introduction,
including an example. The homepage contains links to a user
manual, an academic paper and further information:
To use Shake the user writes a Haskell program
that imports Development.Shake, defines some build rules, and calls
Development.Shake.shakeArgs function. Thanks to do notation and infix
operators, a simple Shake build system
is not too dissimilar from a simple Makefile. However, as build systems
get more complex, Shake is able to take advantage of the excellent
abstraction facilities offered by Haskell and easily support much larger
projects. The Shake library provides all the standard features available in other
build systems, including automatic parallelism and minimal rebuilds.
Shake also provides more accurate dependency tracking, including seamless
support for generated files, and dependencies on system information
(e.g. compiler version).
[Skip to Readme]
Obtain FileTime using portable functions
Enable cloud build features
Embed data files into the shake library
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info