The cake3 package

[maintain]
Warnings:

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
   selfUpdate
   d <- rule $ do
     shell [cmd|gcc -M $cs -MF @(file "depend.mk")|]
   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 https://github.com/grwlf/cake3 for more information.

Changes


Properties

Versions0.1.0.0, 0.2.1.0, 0.2.1.0, 0.3.0.0, 0.3.0.1, 0.4.0.0, 0.5.0.0, 0.5.1.0, 0.5.2.0
Dependenciesattoparsec, base (==4.6.*), bytestring, containers, deepseq, directory, filepath, haskell-src-meta, language-javascript (==0.5.*), mime-types, monadloc, mtl, optparse-applicative, process, syb, system-filepath, template-haskell, text, text-format
LicenseBSD3
AuthorSergey Mironov
Maintainergrrwlf@gmail.com
CategoryDevelopment
Home pagehttps://github.com/grwlf/cake3
Executablesurembed, cake3
UploadedWed Dec 4 09:51:50 UTC 2013 by SergeyMironov

Modules

Downloads

Maintainers' corner

For package maintainers and hackage trustees