-- Initial hmg.cabal generated by cabal init. For further documentation, -- see http://haskell.org/cabal/users-guide/ name: cake3 version: 0.6.5 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 "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.Ext.UrEmbed.Types Development.Cake3.Utils.Find Development.Cake3.Utils.Slice Text.QuasiMake build-depends: base >=4.7, haskell-src-meta, template-haskell, filepath, containers, text, monadloc, mtl >= 2.2.1, bytestring, deepseq, system-filepath, text-format, directory, attoparsec, mime-types, syb, parsec, process hs-source-dirs: src ghc-options: -fwarn-incomplete-patterns executable cake3 hs-source-dirs: src main-is: CakeScript.hs build-depends: base >=4.7 && < 5 , process other-modules: Paths_cake3 executable cake3-scan hs-source-dirs: app/CakeScan main-is: Main.hs build-depends: base >=4.7 && < 5 , process, cake3, filepath, directory executable urembed hs-source-dirs: app/UrEmbed main-is: Main.hs build-depends: base >= 4.7 && < 5 , mtl >= 2.2.1 , process, filepath, syb, optparse-applicative, directory, text, bytestring, containers, haskell-src-meta, template-haskell, attoparsec, monadloc, mime-types, parsec, transformers, utf8-string, blaze-builder, array other-modules: C C_DSL CSS JS Types Language.JavaScript.Parser Language.JavaScript.Parser.Parser Language.JavaScript.Parser.Lexer Language.JavaScript.Parser.Grammar5 Language.JavaScript.Parser.AST Language.JavaScript.Pretty.Printer Language.JavaScript.Parser.SrcLocation Language.JavaScript.Parser.LexerUtils Language.JavaScript.Parser.ParseError Language.JavaScript.Parser.ParserMonad Language.JavaScript.Parser.StringEscape Language.JavaScript.Parser.Token