The cake3 package

[Tags: bsd3, library, program]

Cake3 is a EDSL for building Makefiles, written in Haskell. With cake3, developer can write their build logic in Haskell, obtain clean and safe Makefile and distribute it among the non-Haskell-aware users. Currenly, GNU Make is the only backend supported.

Example program

 module Cakefile where

 import Development.Cake3
 import Cakefile_P

 cs = map file ["main.c", "second.c"]

 main = writeMake (file "Makefile") $ do
   d <- rule $ do
     shell [cmd|gcc -M $cs -MF @(file "")|]
   os <- forM cs $ \c -> do
     rule $ do
       shell [cmd| gcc -c $(extvar "CFLAGS") -o @(c.="o") $c |]
   elf <- rule $ do
     shell [cmd| gcc -o @(file "main.elf") $os |]
   rule $ do
     phony "clean"
     unsafeShell [cmd|rm $elf $os $d|]
   rule $ do
     phony "all"
     depend elf
   includeMakefile d

Basic workflow

See the README on the GitHub for more information. Distribution contains several example projects.


Versions0.1.0.0,,,,,,,, 0.6.0
Dependenciesattoparsec, base (==4.6.*), bytestring, containers, deepseq, directory, filepath, haskell-src-meta, language-javascript, mime-types, monadloc, mtl, optparse-applicative, process, syb, system-filepath, template-haskell, text, text-format
AuthorSergey Mironov
Home page
Executablesurembed, cake3
UploadedTue Dec 24 11:22:53 UTC 2013 by SergeyMironov
Downloads841 total (85 in last 30 days)
StatusDocs available [build log]
Successful builds reported [all 1 reports]




Maintainers' corner

For package maintainers and hackage trustees