-- Initial hmg.cabal generated by cabal init. For further documentation, -- see http://haskell.org/cabal/users-guide/ name: cake3 version: 0.3.0.1 synopsis: Third cake the Makefile EDSL description: Cake3 is a Makefile EDSL written in Haskell. Write your build logic in Haskell, obtain clean and safe Makefile, distribute it to the end-users. GNU Make is required. license: BSD3 license-file: LICENSE author: Sergey Mironov maintainer: grrwlf@gmail.com homepage: https://github.com/grwlf/cake3 description: 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 for more information. Distribution contains several example projects. category: Development build-type: Simple cabal-version: >=1.8 data-dir: src data-files: CakeScript.sh, UrEmbedHelp.txt Extra-Source-Files: README.md, LICENSE, CHANGELOG library exposed-modules: Development.Cake3 Development.Cake3.Types Development.Cake3.Writer System.FilePath.Wrapper Development.Cake3.Monad Development.Cake3.Ext.UrWeb Development.Cake3.Utils.Find Text.QuasiMake build-depends: base ==4.6.*, haskell-src-meta, template-haskell, filepath, containers, text, monadloc, mtl, bytestring, deepseq, system-filepath, text-format, directory, attoparsec, mime-types, language-javascript ==0.5.*, syb hs-source-dirs: src executable cake3 hs-source-dirs: src main-is: CakeScript.hs build-depends: base ==4.6.*, process other-modules: Paths_cake3 executable urembed hs-source-dirs: src main-is: Development/Cake3/Ext/UrWeb/UrEmbed.hs build-depends: base == 4.6.*, mtl, language-javascript ==0.5.*, process, filepath, syb, optparse-applicative, directory, text, bytestring, containers, language-javascript, haskell-src-meta, template-haskell, attoparsec, monadloc, mime-types other-modules: Paths_cake3