local generated = {} definerule("generate", { body = { type="string" }, offset = { type="object" }, }, function(e) return normalrule { name = e.name, ins = { "./generate.sh", "./"..e.body }, outleaves = { e.name..".s" }, commands = { "%{ins[1]} "..e.body.." "..e.offset.." > %{outs}" } } end ) for i = 1, 128 do generated[#generated+1] = generate { name = "fload"..i, body = "fload.h", offset = i } generated[#generated+1] = generate { name = "floadn"..i, body = "floadn.h", offset = i } generated[#generated+1] = generate { name = "fstore"..i, body = "fstore.h", offset = i } generated[#generated+1] = generate { name = "fstoren"..i, body = "fstoren.h", offset = i } generated[#generated+1] = generate { name = "faddr"..i, body = "faddr.h", offset = i } generated[#generated+1] = generate { name = "faddrn"..i, body = "faddrn.h", offset = i } end for _, plat in ipairs(vars.plats) do acklibrary { name = "lib_"..plat, srcs = concat("./*.s", generated), vars = { plat = plat, ["+ackcflags"] = {"-Imach/i80/libem"} }, } end