[edit web page: add use -f option PAF01143@nifty.ne.jp**20081202074412] { adddir ./web_page/samples/use_f_option addfile ./web_page/samples/use_f_option/hello.c hunk ./web_page/samples/use_f_option/hello.c 1 +#include + +int +main( int argc, char *argv[] ) +{ + printf( "Hello, world!\n" ); + return 0; + } addfile ./web_page/samples/use_f_option/myHakefile.hs hunk ./web_page/samples/use_f_option/myHakefile.hs 1 +import Development.Hake +import Development.Hake.FunSetRaw + +target = "hello" + +main = hake [ + + dflt [ target ] + , + rule "" ".c" $ \t (s:_) -> [ [ "cc", "-o", t, s ] ] + , + task "clean" [ [ "rm", "-f", target ] ] + + ] hunk ./web_page/short_tutorial.xhtml.ehs 54 +

13. use -f option

+

13.1. files

+

13.2. try

addfile ./web_page/short_tutorial/HakeModule.hs hunk ./web_page/short_tutorial/HakeModule.hs 1 +module HakeModule ( + targets +, moreFile +, deps +) where + +import Control.Arrow + +targetDependPairs :: [ (String, [ String ]) ] +targetDependPairs = [ + (firstSampleXhtml , firstSampleXhtmlMoreFile ) + , (useRuleXhtml , useRuleXhtmlMoreFile ) + , (useDefaultXhtml , useDefaultXhtmlMoreFile ) + , (useAddDepsXhtml , useAddDepsXhtmlMoreFile ) + , (useRuleSSXhtml , useRuleSSXhtmlMoreFile ) + , (useRuleVXhtml , useRuleVXhtmlMoreFile ) + , (useGetValsXhtml , useGetValsXhtmlMoreFile ) + , (fileAgainXhtml , fileAgainXhtmlMoreFile ) + , (useGetNewersXhtml , useGetNewersXhtmlMoreFile ) + , (useHakefileIsXhtml , useHakefileIsXhtmlMoreFile) + , (useDelRulesXhtml , useDelRulesXhtmlMoreFile ) + , (useModuleXhtml , useModuleXhtmlMoreFile ) + , ("use_f_option.xhtml" , [ "myHakefile.hs_use_f_option" ] ) + ] + +targets :: [ String ] +targets = map fst targetDependPairs + +moreFile :: [ String ] +moreFile = concatMap snd targetDependPairs + +deps :: [ (String, [String]) ] +deps = map (second ("Variables.hs":)) targetDependPairs + +firstSampleXhtml, useRuleXhtml, useDefaultXhtml, useAddDepsXhtml :: String +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" +useHakefileIsXhtml = "use_hakefileIs.xhtml" +useDelRulesXhtml = "use_delRules.xhtml" +useModuleXhtml = "use_module.xhtml" + +firstSampleXhtmlMoreFile, useRuleXhtmlMoreFile, useDefaultXhtmlMoreFile :: [ String ] +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" ] +useHakefileIsXhtmlMoreFile = [ "Hakefile_use_hakefileIs" ] ++ moreMoreFile +useDelRulesXhtmlMoreFile = [ "Hakefile_use_delRules" ] +useModuleXhtmlMoreFile = [ "Hakefile_use_module" ] ++ moreMoreFile2 + +moreMoreFile = [ "hakeMain.hs_use_hakefileIs", "Variables.hs_use_hakefileIs" ] +moreMoreFile2 = [ "Variables.hs_use_module" ] hunk ./web_page/short_tutorial/Hakefile 11 - -firstSampleXhtml, useRuleXhtml, useDefaultXhtml, useAddDepsXhtml :: String -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" -useHakefileIsXhtml = "use_hakefileIs.xhtml" -useDelRulesXhtml = "use_delRules.xhtml" -useModuleXhtml = "use_module.xhtml" - -firstSampleXhtmlMoreFile, useRuleXhtmlMoreFile, useDefaultXhtmlMoreFile :: [ String ] -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" ] -useHakefileIsXhtmlMoreFile = [ "Hakefile_use_hakefileIs" ] ++ moreMoreFile -useDelRulesXhtmlMoreFile = [ "Hakefile_use_delRules" ] -useModuleXhtmlMoreFile = [ "Hakefile_use_module" ] ++ moreMoreFile2 - -targets :: [ String ] -targets = [ - firstSampleXhtml - , useRuleXhtml - , useDefaultXhtml - , useAddDepsXhtml - , useRuleSSXhtml - , useRuleVXhtml - , useGetValsXhtml - , fileAgainXhtml - , useGetNewersXhtml - , useHakefileIsXhtml - , useDelRulesXhtml - , useModuleXhtml - ] - -moreFile :: [ String ] -moreFile = - firstSampleXhtmlMoreFile - ++ useRuleXhtmlMoreFile - ++ useDefaultXhtmlMoreFile - ++ useAddDepsXhtmlMoreFile - ++ useRuleSSXhtmlMoreFile - ++ useRuleVXhtmlMoreFile - ++ useGetValsXhtmlMoreFile - ++ fileAgainXhtmlMoreFile - ++ useGetNewersXhtmlMoreFile - ++ useHakefileIsXhtmlMoreFile - ++ useDelRulesXhtmlMoreFile - ++ useModuleXhtmlMoreFile - -moreMoreFile = [ "hakeMain.hs_use_hakefileIs", "Variables.hs_use_hakefileIs" ] -moreMoreFile2 = [ "Variables.hs_use_module" ] - -deps :: [ (String, [String]) ] -deps = [ - (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" ] ) - , (useHakefileIsXhtml, useHakefileIsXhtmlMoreFile ++ [ "Variables.hs" ] ) - , (useDelRulesXhtml , useDelRulesXhtmlMoreFile ++ [ "Variables.hs" ] ) - , (useModuleXhtml , useModuleXhtmlMoreFile ++ [ "Variables.hs" ] ) - ] +import HakeModule addfile ./web_page/short_tutorial/use_f_option.xhtml.ehs hunk ./web_page/short_tutorial/use_f_option.xhtml.ehs 1 + +<%% import Variables %%> +<%% import System.Time %%> +> +use -f option + + +

13. use -f option

+

updated at <%==$ getClockTime %>

+

You can use your favorite file as Hakefile.

+ +

13.1. files

+
> ls
+hello.c myHakefile.hs
+<%== catFile "myHakefile.hs" "use_f_option" %> + +

13.2. try

+
> hake -f myHakefile.hs
+cc -o hello hello.c
+ + + }