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 "all"
     depend elf
   includeMakefile d

Basic workflow

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


Dependenciesattoparsec, base (==4.7.*), bytestring, containers, deepseq, directory, filepath, haskell-src-meta, language-javascript, mime-types, monadloc, mtl, optparse-applicative, parsec, process, syb, system-filepath, template-haskell, text, text-format
AuthorSergey Mironov
Home page
Executablesurembed, cake3
UploadedSat Sep 20 20:13:56 UTC 2014 by SergeyMironov
Downloads728 total (36 in last 30 days)
StatusDocs uploaded by user
Build status unknown [no reports yet]




Maintainers' corner

For package maintainers and hackage trustees