cabal-version: >= 1.8 build-type: Simple name: shake version: 0.6 x-revision: 1 license: BSD3 license-file: LICENSE category: Development author: Neil Mitchell maintainer: Neil Mitchell copyright: Neil Mitchell 2011-2013 synopsis: Build system library, like Make, but more accurate dependencies. 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. Further examples are included in the Cabal tarball, under the @Examples@ directory. . To use Shake the user writes a Haskell program that imports the Shake library, defines some build rules, and calls 'shake'. Thanks to do notation and infix operators, a simple Shake program 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 . The associated talk forms a short overview of Shake . homepage: http://community.haskell.org/~ndm/shake/ stability: Beta extra-source-files: Examples/C/constants.c Examples/C/constants.h Examples/C/main.c Examples/Tar/list.txt Paths.hs data-files: html/bootstrap.js html/bootstrap.css html/bootstrap-responsive.css html/bootstrap-tab.js html/jquery.js html/jquery-flot.js html/shake.js html/report.html source-repository head type: darcs location: http://community.haskell.org/~ndm/darcs/shake/ flag testprog default: False description: Build the test program flag portable default: False description: Obtain FileTime using portable functions library build-depends: base >= 4 && < 4.7, old-time, directory, hashable >= 1.1.2.3 && < 1.3, binary, filepath < 1.3.1, process, unordered-containers (>= 0.1.4.3 && < 0.2) || (>= 0.2.1 && < 0.3), bytestring, time, random, transformers >= 0.2 && < 0.4, deepseq >= 1.1 && < 1.4 if flag(portable) cpp-options: -DPORTABLE else if !os(windows) build-depends: unix >= 2.5.1 exposed-modules: Development.Shake Development.Shake.Classes Development.Shake.FilePath other-modules: Development.Shake.Binary Development.Shake.Core Development.Shake.Database Development.Shake.Derived Development.Shake.Directory Development.Shake.File Development.Shake.FilePattern Development.Shake.Files Development.Shake.FileTime Development.Shake.Intern Development.Shake.Locks Development.Shake.Oracle Development.Shake.Pool Development.Shake.Report Development.Shake.Rerun Development.Shake.Storage Development.Shake.Types Development.Shake.Value Paths_shake executable shake main-is: Main.hs if flag(testprog) buildable: True else buildable: False build-depends: base == 4.*, old-time, directory, hashable >= 1.1.2.3 && < 1.3, binary, filepath, process, unordered-containers (>= 0.1.4.3 && < 0.2) || (>= 0.2.1 && < 0.3), bytestring, time, random, transformers >= 0.2 && < 0.4, deepseq >= 1.1 && < 1.4 if flag(portable) cpp-options: -DPORTABLE else if !os(windows) build-depends: unix >= 2.5.1 other-modules: Examples.Util Examples.C.Main Examples.Self.Main Examples.Tar.Main Examples.Test.Assume Examples.Test.Basic Examples.Test.Benchmark Examples.Test.Directory Examples.Test.Errors Examples.Test.FilePath Examples.Test.FilePattern Examples.Test.Files Examples.Test.Journal Examples.Test.Pool Examples.Test.Random Examples.Test.Resources