[edit web page: add addDeps and so on Yoshikuni Jujo **20081129134258] { addfile ./web_page/Variables.hs hunk ./web_page/Variables.hs 1 +module Variables ( + htmlXmlns +, catHakefile +) where + +htmlXmlns :: String +htmlXmlns = "http://www.w3.org/1999/xhtml" + +catHakefile :: String -> IO String +catHakefile dir = do + cont <- readFile $ "../samples/" ++ dir ++ "/Hakefile" + return $ "

> cat Hakefile

\n" ++ + "
" ++ cont ++ "
" adddir ./web_page/samples/use_addDeps addfile ./web_page/samples/use_addDeps/Hakefile hunk ./web_page/samples/use_addDeps/Hakefile 1 +import Development.Hake +import Development.Hake.FunSetRaw + +target = "hello" +moduleN = "sayHello" + +main = hake $ [ + + dflt [ target ] + , + rule "" ".o" $ \t s -> [ [ "cc", "-o", t ] ++ filter (isSuffixOf ".o") s ] + , + rule ".o" ".c" $ \_ (s:_) -> [ [ "cc", "-c", s ] ] + , + task "clean" [ [ "rm", "-f", moduleN ++ ".o", target ++ ".o", target ] ] + + ] `addDeps` [ + + (target , [ moduleN ++ ".o" ]) + , + (target ++ ".o", [ moduleN ++ ".h" ]) + + ] addfile ./web_page/samples/use_addDeps/hello.c hunk ./web_page/samples/use_addDeps/hello.c 1 +#include "sayHello.h" + +int +main (int argc, char *argv[]) +{ + sayHelloTo( "world" ); + return 0; + } addfile ./web_page/samples/use_addDeps/sayHello.c hunk ./web_page/samples/use_addDeps/sayHello.c 1 +#include + +void +sayHelloTo (char who[]) +{ + printf( "Hello, %s!\n", who ); + } addfile ./web_page/samples/use_addDeps/sayHello.h hunk ./web_page/samples/use_addDeps/sayHello.h 1 +void +sayHelloTo (char who[]); hunk ./web_page/samples/use_default/Hakefile 4 +target = "hello" + hunk ./web_page/samples/use_default/Hakefile 11 + , + task "clean" [ [ "rm", "-f", target ] ] hunk ./web_page/short_tutorial.xhtml.ehs 4 - +<%% import Variables %%> +> hunk ./web_page/short_tutorial.xhtml.ehs 13 -

0. first of all

-

1. first sample

+

0. first of all

+

1. first sample

hunk ./web_page/short_tutorial.xhtml.ehs 17 -

2. use rule sample

+

2. use rule sample

hunk ./web_page/short_tutorial.xhtml.ehs 22 -

3. use default sample

-

3.1.

-

3.2.

+

3. use default sample

+

3.1. dflt function

+

3.2. try

+

4. use addDeps sample

+

4.1. addDeps function

+

4.2. try

hunk ./web_page/short_tutorial/Hakefile 11 -firstSampleXhtml, useRuleXhtml, useDefaultXhtml :: String +firstSampleXhtml, useRuleXhtml, useDefaultXhtml, useAddDepsXhtml :: String hunk ./web_page/short_tutorial/Hakefile 15 +useAddDepsXhtml = "use_addDeps.xhtml" hunk ./web_page/short_tutorial/Hakefile 21 +useAddDepsXhtmlMoreFile = [ "Hakefile_use_addDeps" ] hunk ./web_page/short_tutorial/Hakefile 24 -targets = [ firstSampleXhtml, useRuleXhtml, useDefaultXhtml ] +targets = [ + firstSampleXhtml + , useRuleXhtml + , useDefaultXhtml + , useAddDepsXhtml + ] hunk ./web_page/short_tutorial/Hakefile 32 -moreFile = firstSampleXhtmlMoreFile ++ useRuleXhtmlMoreFile ++ useDefaultXhtmlMoreFile +moreFile = + firstSampleXhtmlMoreFile + ++ useRuleXhtmlMoreFile + ++ useDefaultXhtmlMoreFile + ++ useAddDepsXhtmlMoreFile hunk ./web_page/short_tutorial/Hakefile 41 - , (useRuleXhtml, useRuleXhtmlMoreFile) - , (useDefaultXhtml, useDefaultXhtmlMoreFile) + , (useRuleXhtml , useRuleXhtmlMoreFile ) + , (useDefaultXhtml , useDefaultXhtmlMoreFile ++ [ "Variables.hs" ] ) + , (useAddDepsXhtml , useAddDepsXhtmlMoreFile ++ [ "Variables.hs" ] ) hunk ./web_page/short_tutorial/Hakefile 64 + copyFileRule "Variables.hs" "../Variables.hs" + , addfile ./web_page/short_tutorial/use_addDeps.xhtml.ehs hunk ./web_page/short_tutorial/use_addDeps.xhtml.ehs 1 + +<%% import Variables %%> +<%% import System.Time (getClockTime) %%> +> +use addDeps + +

use addDeps

+

updated at <%==$ getClockTime %>

+ +

4.1. addDeps function

+<%== catHakefile "use_addDeps" %> + +

4.2. try

+
> hake
+cc -c sayHello.c
+cc -c hello.c
+cc -o hello hello.o sayHello.o
+
+ + + hunk ./web_page/short_tutorial/use_default.xhtml.ehs 4 +<%% import Variables %%> hunk ./web_page/short_tutorial/use_default.xhtml.ehs 14 -

> cat Hakefile

-
<%== readFile "../samples/use_default/Hakefile" %>
+

And I introduce 'task' now.

+<%== catHakefile "use_default" %> hunk ./web_page/short_tutorial/use_default.xhtml.ehs 22 +
> hake clean
+rm -f hello
}