# build.conf for build, kind of whacky, eh? default action: check "build", check "cleanup" ["build", "cleanup"]: rule "exe", target file, set "CXXFLAGS" = "-lBob", input [filesIn("src/{target}"), filesIn("src/shared")] [directoriesIn("src/tests")] filter regexp("src/tests/(.*)", "tests/{re:1}"): rule "exe", target prefix "tests/", target file, input filesIn("src/tests/{target}") [directoriesIn("src/tests"), "aoeua"]: rule "exe", target file, input filesIn("src/{target}") "build": input [filesIn("src"), "boy.cpp"] filter regexp(".*\\.cpp$"), input filter regexp(".*\\.cpp$"), requires ["bob.cpp", "libbuild.a", "libbu++/libbu++.a"] "bob.cpp": set "aoeu" = "food", requires "bob.bastard" rule "exe": matches regexp("(.*)\\.o$"), input filter toString(), perform command("stuff") rule "cpp": matches regexp("(.*)\\.cpp$"), produces "{re:1}.o", requires commandToList("make", "g++ -M {match}"), perform command("stuff")