# build.conf for build, kind of whacky, eh? default action: check targets() set "CXXFLAGS" += "-ggdb -W -Wall" "build": rule "exe", target file, requires "libbu++/libbu++.a", set "LDFLAGS" += "-Llibbu++ -lbu++ -ldl", set "CXXFLAGS" += "-Ilibbu++", input filesIn("src") filter regexp(".*\\.(cpp|y|l)$") rule "exe": matches regexp("(.*)\\.o$"), aggregate toString(" "), perform command("g++ -o {target} {match} {LDFLAGS}") rule "cpp": matches regexp("(.*)\\.(cpp|c)$"), produces "{re:1}.o", requires commandToList("g++ -M {CXXFLAGS} {match}", "make"), perform command("g++ {CXXFLAGS} -c -o {target} {match}") rule "bison": matches regexp("(.*)\\.y$"), produces ["{re:1}.tab.c", "{re:1}.tab.h", "{re:1}.output"], perform command("bison -v -b{re:1} {match}") rule "flex": matches regexp("(.*)\\.l$"), produces ["{re:1}.yy.c","{re:1}.yy.h"], perform command("flex {FLEXFLAGS} {match}")