HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Package0.19.8DevelopmentShake

shake

Build system library, like Make, but more accurate dependencies.

Modules

9 modules
  • Development.Shake148This module is used for defining Shake build systems. As a simple example of a Shake build system,
  • Development.Shake.Classes6This module reexports the six necessary type classes that many rule types must support through ShakeValue.
  • Development.Shake.Command23This module provides functions for calling command line programs, primarily
  • Development.Shake.Config6A module for parsing and using config files in a Shake build system. Config files
  • Development.Shake.Database9Lower-level primitives to drive Shake, which are wrapped into the
  • Development.Shake.FilePath61A module for FilePath operations exposing System.FilePath plus some additional operations. Windows note: The extension methods (<.>, take…
  • Development.Shake.Forward7A module for producing forward-defined build systems, in contrast to standard backwards-defined
  • Development.Shake.Rule21This module is used for defining new types of rules for Shake build systems, e.g. to support values stored in a database.
  • Development.Shake.Util6A module for useful utility functions for Shake build systems.

Description

Shake is a Haskell library for writing build systems - designed as a replacement for make. See Development.Shake for an introduction, including an example. The homepage contains links to a user manual, an academic paper and further information: https://shakebuild.com

To use Shake the user writes a Haskell program that imports Development.Shake, defines some build rules, and calls the 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).

Depends on

21 packages

Used by in this set · 0

Nothing in this set depends on it.