hake-1.1: hake.cabal
Name: hake
Version: 1.1
License: GPL
License-file: LICENSE
Author: Yoshikuni Jujo
Maintainer: Yoshikuni Jujo <PAF01143@nifty.ne.jp>
Category: Development
Synopsis: make tool. ruby : rake = haskell : hake
Description: Like ruby's rake, hake have Hakefile which is Haskell source.
.
And Hakefile is like rake's Rakefile, and make's Makefile.
.
Hakefile is just Haskell source code,
then you can use all Haskell features.
.
> import Development.Hake
> import Development.Hake.FunSetRaw
> hake_rules = [
>
> dflt [ "greeting" ]
> ,
> file [ "greeting", "greeting.log" ] [ "hello.o", "good-bye.o" ] $
> const2 [ [ "linker", "-o", "greeting", "hello.o", "good-bye.o" ] ]
> ,
> rule ".o" ".sfx1" $
> \t (s:_) -> [ [ "compiler1", s, "-o", t ] ]
> ,
> rule ".o" ".sfx2" $
> \t (s:_) -> [ [ "compiler2", s, "-o", t ] ]
> ,
> task "clean"
> [ [ "rm", "-f", "hello.o", "good-by.o", "greeting", "greeting.log" ] ]
> ,
> mkfl "script.sh" [ "#!/bin/sh", "echo This is script", "echo made by Hakefile" ]
> ,
> ruleSS "" ".o" $ \t (s:_) -> [ (".c", [ [ "gcc", s, "-o", t ] ] ) ,
> (".cc", [ [ "g++", s, "-o", t ] ] ) ] )
> ,
> rule ".o" ".c" $ \_ (s:_) -> [ [ "gcc", "-c", s ] ]
> ,
> rule ".o" ".cc" $ \_ (s:_) -> [ [ "g++", "-c", s ] ]
> ,
> base (=="foo") (const [ "foo.gen", "Hakefile" ]) $ \t (s:_) _ _ -> do
> gen <- readFile s
> writeFile t $ unlines $
> [ "#!/bin/sh", "echo This is script" ] ++ lines gen
> return ExitSuccess
>
> ]
>
> main = hake hake_rules
Stability: stable
Homepage: http://homepage3.nifty.com/salamander/second/projects/hake/index.xhtml
Package-Url: http://code.haskell.org/hake/
Cabal-Version: >= 1.2
Build-type: Simple
Tested-With: GHC
Data-Files:
Extra-Source-Files:
Extra-Tmp-Files:
Library
GHC-Options: -Wall
Build-Depends: base, old-time, mtl, filepath
Exposed-Modules: Development.Hake, Development.Hake.OldFunSet, Development.Hake.FunSet, Development.Hake.FunSetRaw, Development.Hake.FunSetIO
Other-Modules: Development.Hake.Variables, Development.Hake.Types, Development.Hake.Tools, Development.Hake.RunHake, Development.Hake.Core
Executable hake
GHC-Options: -Wall
Build-Depends: directory, process, yjtools >= 0.9.7, regexpr >= 0.5.1
Main-Is: Main.hs