@hackage / shake

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

Latest0.19.9

About

Metadata

  • Last updated , by NeilMitchell
  • License BSD-3-Clause
  • Categories Development
  • Maintained by: Neil Mitchell <ndmitchell@gmail.com>

  • Lottery factor: 1

Links

Installation

Package Flags

Use the -f option with cabal commands to enable flags

    portable (off by default)

    Obtain FileTime using portable functions

    cloud (off by default)

    Enable cloud build features

    embed-files (off by default)

    Embed data files into the shake library

    threaded (on by default)

    Build shake with the threaded RTS

Readme

Shake Hackage version Stackage version Build status

Shake is a tool for writing build systems - an alternative to make, Scons, Ant etc. Shake has been used commercially for over five years, running thousands of builds per day. The website for Shake users is at shakebuild.com.

Documentation
  • Why use Shake? Shake lets you write large robust build systems, which deal properly with generated source files and run quickly. If you are writing a custom build system of any moderate size (more than a few rules) you should use Shake. The advantages over other build systems are detailed in the document Why choose Shake?.
  • How do I use Shake? Shake is a Haskell library that you use to define your rules. The Shake manual provides a walk through of a small but realistic example, assuming no Haskell knowledge.
  • Generated documentation for all functions, includes lots of examples.
  • Blog posts detailing ongoing development work.
  • Academic paper on the underlying principles behind Shake.
  • Download the Haskell package from Hackage and install it using Cabal.
  • Mailing list for any questions/bugs/thoughts on Shake. If you need more information and aren't sure where to start, use the mailing list.
  • Questions can be asked on StackOverflow with the tag shake-build-system.

Is your company using Shake? Write something public (even just a tweet to @ndm_haskell) and I'll include a link on the website.