The cake3 package

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[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, 0.6.0, 0.6.4, 0.6.5
Change logNone available
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 [details]
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