cake3: Third cake the Makefile EDSL
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
Install the cake3
Create Cakefile.hs in the project root
Build the application using cake3 script provided
Execute the application to obtain the Makefile
See the README on the GitHub https://github.com/grwlf/cake3 for more information.
Changes
0.1 - Initial release
0.2 - Redesign (simplify) monadic interface, add support for prebuild/postbuild actions.
Modules
[Index]
Downloads
- cake3-0.2.1.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.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, 0.6.0, 0.6.4, 0.6.5 |
---|---|
Dependencies | attoparsec, base (>=4.6 && <4.7), bytestring, containers, deepseq, directory, filepath, haskell-src-meta, language-javascript (>=0.5 && <0.6), mime-types, monadloc, mtl, optparse-applicative, process, syb, system-filepath, template-haskell, text, text-format [details] |
License | BSD-3-Clause |
Author | Sergey Mironov |
Maintainer | grrwlf@gmail.com |
Category | Development |
Home page | https://github.com/grwlf/cake3 |
Uploaded | by SergeyMironov at 2013-12-04T09:52:30Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Executables | urembed, cake3 |
Downloads | 8421 total (25 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Successful builds reported [all 2 reports] |