Massive ackbuilder refactor --- cleaner and more expressive. Lists
are automatically flattened (leading to better build files), and the list and filename functions are vastly more orthogonal.
This commit is contained in:
@@ -21,7 +21,7 @@ definerule("llgen",
|
||||
function(e)
|
||||
-- Remember this is executed from the caller's directory; local
|
||||
-- target names will resolve there
|
||||
local fs = replace(basename(e.srcs), "%.g$", "")
|
||||
local fs = replace(basename(filenamesof(e.srcs)), "%.g$", "")
|
||||
|
||||
return normalrule {
|
||||
name = e.name,
|
||||
@@ -29,11 +29,11 @@ definerule("llgen",
|
||||
outleaves = {
|
||||
"Lpars.c",
|
||||
"Lpars.h",
|
||||
unpack(replace(fs, "$", ".c"))
|
||||
replace(fs, "$", ".c")
|
||||
},
|
||||
ins = {
|
||||
"util/LLgen+llgen",
|
||||
unpack(e.srcs),
|
||||
e.srcs,
|
||||
},
|
||||
commands = {
|
||||
"cd %{dir} && %{abspath(ins)}"
|
||||
|
||||
@@ -8,13 +8,13 @@ definerule("tabgen",
|
||||
srcs = { type="targets" },
|
||||
},
|
||||
function(e)
|
||||
local symname = replace(basename(e.srcs[1]), "%.tab$", "")
|
||||
local symname = basename(filenamesof(e.srcs)[1]):gsub("%.tab$", "")
|
||||
|
||||
return normalrule {
|
||||
name = e.name,
|
||||
ins = {
|
||||
"util/cmisc+tabgen",
|
||||
unpack(e.srcs)
|
||||
e.srcs
|
||||
},
|
||||
outleaves = { symname..".c" },
|
||||
commands = {
|
||||
|
||||
@@ -24,7 +24,7 @@ clibrary {
|
||||
name = "em_data",
|
||||
srcs = concat(
|
||||
"./em_ptyp.c",
|
||||
filenamesof(generated, "%.c$")
|
||||
matching(filenamesof(generated), "%.c$")
|
||||
),
|
||||
hdrs = {
|
||||
"+generated" -- so we export the H files
|
||||
|
||||
@@ -12,11 +12,11 @@ local cgglexer = flex {
|
||||
|
||||
normalrule {
|
||||
name = "keywords",
|
||||
ins = concat(
|
||||
ins = {
|
||||
"./cvtkeywords",
|
||||
"./keywords",
|
||||
filenamesof({cggparser}, "%.h$")
|
||||
),
|
||||
matching(filenamesof(cggparser), "%.h$")
|
||||
},
|
||||
outleaves = { "enterkeyw.c" },
|
||||
commands = {
|
||||
"%{ins[1]} %{ins[2]} %{ins[3]} %{outs[1]}"
|
||||
@@ -27,8 +27,8 @@ cprogram {
|
||||
name = "ncgg",
|
||||
srcs = concat(
|
||||
"./*.c",
|
||||
filenamesof({cggparser}, "%.c$"),
|
||||
filenamesof({cgglexer}, "%.c$"),
|
||||
matching(filenamesof(cggparser), "%.c$"),
|
||||
matching(filenamesof(cgglexer), "%.c$"),
|
||||
"+keywords"
|
||||
),
|
||||
deps = {
|
||||
|
||||
Reference in New Issue
Block a user