[edit web page: add use getNewers Yoshikuni Jujo **20081130045456] { hunk ./web_page/Variables.hs 18 +catFile :: String -> String -> IO String +catFile fn dir = do + cont_ <- readFile $ "../samples/" ++ dir ++ "/" ++ fn + let cont = flip (foldr (uncurry gsubRegexPR)) [ (">", ">"), ("<", "<") ] cont_ + return $ "

> cat " ++ + fn ++ "

\n" ++ "
" ++ cont ++ "
" + adddir ./web_page/samples/use_getNewers addfile ./web_page/samples/use_getNewers/Hakefile hunk ./web_page/samples/use_getNewers/Hakefile 1 +import Development.Hake +import Development.Hake.FunSetIO + +target = "libops" +modules = [ "interact.o", "sched.o", "gen.o" ] + +main = hake [ + + dflt [ target ] + , + file [ target ] modules $ \t s -> do + newers <- getNewers target modules + rawSystemE $ [ "ar", "r", t ] ++ newers + , + rule ".o" ".c" $ \t (s:_) -> rawSystemE [ "cc", "-c", "-o", t, s ] + , + task "clean" $ rawSystemE $ [ "rm", "-f", target ] ++ modules + + ] addfile ./web_page/samples/use_getNewers/gen.c addfile ./web_page/samples/use_getNewers/interact.c addfile ./web_page/samples/use_getNewers/sched.c hunk ./web_page/short_tutorial.xhtml.ehs 40 +

9. use getNewers

+

9.1. FunSetIO

+

9.2. getNewers function

+

9.3. try

hunk ./web_page/short_tutorial/Hakefile 12 -firstSampleXhtml = "first_sample.xhtml" -useRuleXhtml = "use_rule.xhtml" -useDefaultXhtml = "use_default.xhtml" -useAddDepsXhtml = "use_addDeps.xhtml" -useRuleSSXhtml = "use_ruleSS.xhtml" -useRuleVXhtml = "use_ruleV.xhtml" -useGetValsXhtml = "use_getVals.xhtml" -fileAgainXhtml = "file_again.xhtml" +firstSampleXhtml = "first_sample.xhtml" +useRuleXhtml = "use_rule.xhtml" +useDefaultXhtml = "use_default.xhtml" +useAddDepsXhtml = "use_addDeps.xhtml" +useRuleSSXhtml = "use_ruleSS.xhtml" +useRuleVXhtml = "use_ruleV.xhtml" +useGetValsXhtml = "use_getVals.xhtml" +fileAgainXhtml = "file_again.xhtml" +useGetNewersXhtml = "use_getNewers.xhtml" hunk ./web_page/short_tutorial/Hakefile 23 -firstSampleXhtmlMoreFile = [ "Hakefile_first_sample" ] -useRuleXhtmlMoreFile = [ "Hakefile_use_rule" , "Hakefile_use_rule_FunSetRaw" ] -useDefaultXhtmlMoreFile = [ "Hakefile_use_default" ] -useAddDepsXhtmlMoreFile = [ "Hakefile_use_addDeps" ] -useRuleSSXhtmlMoreFile = [ "Hakefile_use_ruleSS" ] -useRuleVXhtmlMoreFile = [ "Hakefile_use_ruleV" ] -useGetValsXhtmlMoreFile = [ "Hakefile_use_getVals" ] -fileAgainXhtmlMoreFile = [ "Hakefile_file_again" ] +firstSampleXhtmlMoreFile = [ "Hakefile_first_sample" ] +useRuleXhtmlMoreFile = [ "Hakefile_use_rule" , "Hakefile_use_rule_FunSetRaw" ] +useDefaultXhtmlMoreFile = [ "Hakefile_use_default" ] +useAddDepsXhtmlMoreFile = [ "Hakefile_use_addDeps" ] +useRuleSSXhtmlMoreFile = [ "Hakefile_use_ruleSS" ] +useRuleVXhtmlMoreFile = [ "Hakefile_use_ruleV" ] +useGetValsXhtmlMoreFile = [ "Hakefile_use_getVals" ] +fileAgainXhtmlMoreFile = [ "Hakefile_file_again" ] +useGetNewersXhtmlMoreFile = [ "Hakefile_use_getNewers" ] hunk ./web_page/short_tutorial/Hakefile 43 + , useGetNewersXhtml hunk ./web_page/short_tutorial/Hakefile 56 + ++ useGetNewersXhtmlMoreFile + +moreMoreFile = [] hunk ./web_page/short_tutorial/Hakefile 62 - (firstSampleXhtml, firstSampleXhtmlMoreFile) - , (useRuleXhtml , useRuleXhtmlMoreFile ) - , (useDefaultXhtml , useDefaultXhtmlMoreFile ++ [ "Variables.hs" ] ) - , (useAddDepsXhtml , useAddDepsXhtmlMoreFile ++ [ "Variables.hs" ] ) - , (useRuleSSXhtml , useRuleSSXhtmlMoreFile ++ [ "Variables.hs" ] ) - , (useRuleVXhtml , useRuleVXhtmlMoreFile ++ [ "Variables.hs" ] ) - , (useGetValsXhtml , useGetValsXhtmlMoreFile ++ [ "Variables.hs" ] ) - , (fileAgainXhtml , fileAgainXhtmlMoreFile ++ [ "Variables.hs" ] ) + (firstSampleXhtml , firstSampleXhtmlMoreFile) + , (useRuleXhtml , useRuleXhtmlMoreFile ) + , (useDefaultXhtml , useDefaultXhtmlMoreFile ++ [ "Variables.hs" ] ) + , (useAddDepsXhtml , useAddDepsXhtmlMoreFile ++ [ "Variables.hs" ] ) + , (useRuleSSXhtml , useRuleSSXhtmlMoreFile ++ [ "Variables.hs" ] ) + , (useRuleVXhtml , useRuleVXhtmlMoreFile ++ [ "Variables.hs" ] ) + , (useGetValsXhtml , useGetValsXhtmlMoreFile ++ [ "Variables.hs" ] ) + , (fileAgainXhtml , fileAgainXhtmlMoreFile ++ [ "Variables.hs" ] ) + , (useGetNewersXhtml, useGetNewersXhtmlMoreFile ++ [ "Variables.hs" ] ) hunk ./web_page/short_tutorial/Hakefile 74 -copyFileRuleList = map (uncurry copyFileRule . mkCopyPairOfHakefile) moreFile +copyFileRuleList = map (uncurry copyFileRule . mkCopyPairOfHakefile) moreFile ++ + map (uncurry copyFileRule . mkCopyPairOf) moreMoreFile + +mkCopyPairOf :: String -> (String, String) +mkCopyPairOf fn + = (fn, "../samples/" ++ getSecondBrReg "(.+)_(.+)" fn ++ "/" ++ getFirstBrReg "(.+)_(.+)" fn) hunk ./web_page/short_tutorial/Hakefile 166 + +getSecondBrReg :: String -> String -> String +getSecondBrReg reg = (!!2) . getbrsRegexPR reg addfile ./web_page/short_tutorial/use_getNewers.xhtml.ehs hunk ./web_page/short_tutorial/use_getNewers.xhtml.ehs 1 + +<%% import Variables %%> +<%% import System.Time (getClockTime) %%> +> +use getNewers + + +

9. use getNewers

+

updated at <%==$ getClockTime %>

+ +

9.1. FunSetIO

+

You can use (IO ExitCode) as command + if you use Development.Hake.FunSetIO. + And you can use systemE and rawSystemE.

+ +

9.2. getNewers function

+<%== catHakefile "use_getNewers" %> + +

9.3. try

+
> hake
+cc -c -o gen.o gen.c
+cc -c -o sched.o sched.c
+cc -c -o interact.o interact.c
+ar r libops interact.o sched.o gen.o
+ar: creatinglibops
+> touch sched.c
+cc -c -o sched.o sched.c
+ar r libops sched.o
+ + + }