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

Basic workflow

See the README on the GitHub https://github.com/grwlf/cake3 for more information. Distribution contains several example projects.


Properties

Versions0.1.0.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.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
LicenseBSD3
AuthorSergey Mironov
Maintainergrrwlf@gmail.com
CategoryDevelopment
Home pagehttps://github.com/grwlf/cake3
Executablesurembed, cake3
Upload dateSat Sep 20 20:13:56 UTC 2014
Uploaded bySergeyMironov
DistributionsNixOS:0.5.1.0
Downloads455 total (37 in last 30 days)

Modules

Downloads

Maintainers' corner

For package maintainers and hackage trustees