shake: Build system library, like Make, but more accurate dependencies.
Shake is a Haskell library for writing build systems - designed as a
replacement for make. See Development.Shake for an introduction,
including an example. Further examples are included in the Cabal tarball,
under the Examples directory.
To use Shake the user writes a Haskell program
that imports Development.Shake , defines some build rules, and calls
the Development.Shake.shake 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 provides highly accurate dependency tracking, including seamless support for generated files, and dependencies on system information (i.e. compiler version). Shake can produce profile reports, indicating which files and take longest to build, and providing an analysis of the parallelism.
The theory behind Shake is described in an ICFP 2012 paper, Shake Before Building -- Replacing Make with Haskell http://community.haskell.org/~ndm/downloads/paper-shake_before_building-10_sep_2012.pdf. The associated talk forms a short overview of Shake http://www.youtube.com/watch?v=xYCPpXVlqFM.
Modules
[Index]
Flags
Automatic Flags
| Name | Description | Default |
|---|---|---|
| testprog | Build the test program | Disabled |
| portable | Obtain FileTime using portable functions | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- shake-0.10.6.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.0, 0.1, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.8, 0.2.9, 0.2.10, 0.2.11, 0.3, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.9.1, 0.10, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.5, 0.10.6, 0.10.7, 0.10.8, 0.10.9, 0.10.10, 0.11, 0.11.1, 0.11.2, 0.11.3, 0.11.4, 0.11.5, 0.11.6, 0.11.7, 0.12, 0.13, 0.13.1, 0.13.2, 0.13.3, 0.13.4, 0.14, 0.14.1, 0.14.2, 0.14.3, 0.15, 0.15.1, 0.15.2, 0.15.3, 0.15.4, 0.15.5, 0.15.6, 0.15.7, 0.15.8, 0.15.9, 0.15.10, 0.15.11, 0.16, 0.16.1, 0.16.2, 0.16.3, 0.16.4, 0.17, 0.17.1, 0.17.2, 0.17.3, 0.17.4, 0.17.5, 0.17.6, 0.17.7, 0.17.8, 0.17.9, 0.18, 0.18.1, 0.18.2, 0.18.3, 0.18.4, 0.18.5, 0.19, 0.19.1, 0.19.2, 0.19.3, 0.19.4, 0.19.5, 0.19.6, 0.19.7, 0.19.8 (info) |
|---|---|
| Dependencies | base (>=4 && <5), binary , bytestring , deepseq (>=1.1 && <1.4), directory , filepath (<1.3.1), hashable (>=1.1.2.3 && <1.3), old-time , process (>=1.1), random , time , transformers (>=0.2 && <0.4), unix (>=2.5.1), unordered-containers (>=0.1.4.3 && <0.2 || >=0.2.1 && <0.3) [details] |
| License | BSD-3-Clause |
| Copyright | Neil Mitchell 2011-2013 |
| Author | Neil Mitchell <ndmitchell@gmail.com> |
| Maintainer | Neil Mitchell <ndmitchell@gmail.com> |
| Revised | Revision 1 made by HerbertValerioRiedel at 2015年01月12日T09:55:24Z |
| Category | Development |
| Home page | http://community.haskell.org/~ndm/shake/ |
| Source repo | head: git clone git://github.com/ndmitchell/shake.git |
| Uploaded | by NeilMitchell at 2013年06月28日T10:56:50Z |
| Distributions | Arch:0.19.6, Debian:0.19.1, Fedora:0.19.8, FreeBSD:0.15.5, LTSHaskell:0.19.8, NixOS:0.19.8, Stackage:0.19.8 |
| Reverse Dependencies | 63 direct, 31 indirect [details] |
| Executables | shake-test, shake |
| Downloads | 151819 total (319 in the last 30 days) |
| Rating | 2.5 (votes: 10) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user Build status unknown [no reports yet] |