cake3: Third cake the Makefile EDSL
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.
Warnings:
- Exposed modules use unallocated top-level names: Development
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.
Properties
Versions | 0.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 log | None available |
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:51:50Z |
Modules
- Development
- Development.Cake3
- Ext
- Development.Cake3.Ext.UrWeb
- Development.Cake3.Monad
- Development.Cake3.Types
- Utils
- Development.Cake3.Utils.Find
- Development.Cake3.Writer
- Ext
- Development.Cake3
- System
- FilePath
- System.FilePath.Wrapper
- FilePath
- Text
- Text.QuasiMake
Downloads
- cake3-0.2.1.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees