include("util/LLgen/build.lua") llgen { name = "llgen", srcs = { "./topgen.g", } } cprogram { name = "topgen", srcs = { "./hash.c", "./LLlex.c", "./main.c", "./pattern.c", "./symtab.c", matching(filenamesof("+llgen"), "%.c$"), }, deps = { "+llgen", } } definerule("topgen", { srcs = { type="targets" }, }, function(e) -- Remember this is executed from the caller's directory; local -- target names will resolve there return normalrule { name = e.name, outleaves = { "gen.c", "gen.h", }, ins = { "util/topgen+topgen", e.srcs, }, commands = { "%{ins[1]} %{ins[2]} %{dir}" } } end )