default action: check "build", check "cleanup" ["build", "cleanup"]: rule "exe", target file, set "CXXFLAGS" = "-lBob", input [files("src/{target}"), files("src/shared")] [directoryName("src/tests")] filter /src\/tests/(.*)/tests\/{re:1}/: rule "exe", target prefix "tests/", target file, input files("src/tests/{target}") [directories("src/tests"), aoeua]: rule "exe", target file, input files("src/{target}") "build": input [files("src"), "boy.cpp"] filter /.*\.cpp$/, input filter /.*\.cpp$/, requires ["bob.cpp", "libbuild.a", "libbu++/libbu++.a"] "bob.cpp": set "aoeu" = "food", requires "bob.bastard" rule "exe" matches /(.*)\.o$/, input filter toSpaces(), perform command("stuff") rule "cpp": matches /(.*)\.cpp$/, produces "{re:1}.o", requires commandToList( make, "g++ -M {match}"), perform command("stuff")