Pascal compiler builds.
This commit is contained in:
parent
00c67fcc0e
commit
e770d09dc8
|
@ -14,6 +14,7 @@ installable {
|
|||
"lang/basic/src+pkg",
|
||||
"lang/cem/cemcom.ansi+pkg",
|
||||
"lang/m2/comp+pkg",
|
||||
"lang/pc/comp+pkg",
|
||||
"plat/pc86+pkg",
|
||||
"util/ack+pkg",
|
||||
"util/amisc+pkg",
|
||||
|
|
|
@ -66,6 +66,7 @@ normalrule {
|
|||
ins = {
|
||||
"./make.next",
|
||||
"./*.H",
|
||||
"./*.C",
|
||||
},
|
||||
outleaves = { "next.c" },
|
||||
commands = {
|
||||
|
|
137
lang/pc/comp/build.lua
Normal file
137
lang/pc/comp/build.lua
Normal file
|
@ -0,0 +1,137 @@
|
|||
normalrule {
|
||||
name = "tokenfile_g",
|
||||
ins = {
|
||||
"./make.tokfile",
|
||||
"./tokenname.c"
|
||||
},
|
||||
outleaves = { "tokenfile.g" },
|
||||
commands = {
|
||||
"sh %{ins[1]} < %{ins[2]} > %{outs}"
|
||||
}
|
||||
}
|
||||
|
||||
llgen {
|
||||
name = "llgen",
|
||||
srcs = {
|
||||
-- order here is important
|
||||
"+tokenfile_g",
|
||||
"./*.g",
|
||||
}
|
||||
}
|
||||
|
||||
normalrule {
|
||||
name = "parameters_h",
|
||||
ins = {
|
||||
"./make.parameters",
|
||||
"./Parameters",
|
||||
},
|
||||
outleaves = { "parameters.h" },
|
||||
commands = {
|
||||
"sh %{ins[1]} < %{ins[2]} > %{outs}"
|
||||
}
|
||||
}
|
||||
|
||||
for _, f in ipairs(filenamesof("./*.H")) do
|
||||
local name = replace(basename(f), "%.H$", "")
|
||||
normalrule {
|
||||
name = name.."_h",
|
||||
ins = {
|
||||
"./make.allocd",
|
||||
f
|
||||
},
|
||||
outleaves = { name..".h" },
|
||||
commands = {
|
||||
"%{ins[1]} < %{ins[2]} > %{outs}"
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
for _, f in ipairs(filenamesof("./*.C")) do
|
||||
local name = replace(basename(f), "%.C$", "")
|
||||
normalrule {
|
||||
name = name.."_c",
|
||||
ins = {
|
||||
"./make.allocd",
|
||||
f
|
||||
},
|
||||
outleaves = { name..".c" },
|
||||
commands = {
|
||||
"%{ins[1]} < %{ins[2]} > %{outs}"
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
normalrule {
|
||||
name = "next_c",
|
||||
ins = {
|
||||
"./make.next",
|
||||
"./*.H",
|
||||
"./*.C",
|
||||
},
|
||||
outleaves = { "next.c" },
|
||||
commands = {
|
||||
"sh %{ins} > %{outs}"
|
||||
}
|
||||
}
|
||||
|
||||
normalrule {
|
||||
name = "symbol2str_c",
|
||||
ins = {
|
||||
"./make.tokcase",
|
||||
"./tokenname.c",
|
||||
},
|
||||
outleaves = { "symbol2str.c" },
|
||||
commands = {
|
||||
"%{ins[1]} < %{ins[2]} > %{outs}"
|
||||
}
|
||||
}
|
||||
|
||||
tabgen {
|
||||
name = "chartab_c",
|
||||
srcs = { "./char.tab" },
|
||||
}
|
||||
|
||||
cprogram {
|
||||
name = "em_pc",
|
||||
srcs = {
|
||||
"./*.c",
|
||||
"+casestat_c",
|
||||
"+chartab_c",
|
||||
"+next_c",
|
||||
"+symbol2str_c",
|
||||
"+tmpvar_c",
|
||||
matching(filenamesof("+llgen"), "%.c$"),
|
||||
},
|
||||
deps = {
|
||||
"+def_h",
|
||||
"+desig_h",
|
||||
"+llgen",
|
||||
"+node_h",
|
||||
"+parameters_h",
|
||||
"+scope_h",
|
||||
"+type_h",
|
||||
"h+emheaders",
|
||||
"modules+headers",
|
||||
"modules/src/alloc+lib",
|
||||
"modules/src/em_code+lib_k",
|
||||
"modules/src/flt_arith+lib",
|
||||
"modules/src/idf+lib",
|
||||
"modules/src/input+lib",
|
||||
"modules/src/string+lib",
|
||||
"modules/src/system+lib",
|
||||
"modules/src/print+lib",
|
||||
"modules/src/em_mes+lib",
|
||||
"util/data+em_data",
|
||||
},
|
||||
vars = {
|
||||
["+cflags"] = "-DSTATIC=static"
|
||||
}
|
||||
}
|
||||
|
||||
installable {
|
||||
name = "pkg",
|
||||
map = {
|
||||
["$(PLATDEP)/em_pc"] = "+em_pc",
|
||||
["$(INSDIR)/share/man/man6/em_pc.6"] = "./em_pc.6"
|
||||
}
|
||||
}
|
7
lang/pc/comp/make.parameters
Executable file
7
lang/pc/comp/make.parameters
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
echo '#ifndef PARAMETERS_H'
|
||||
echo '#define PARAMETERS_H'
|
||||
grep -v '^!'
|
||||
echo '#endif'
|
||||
|
|
@ -16,6 +16,7 @@ definerule("ackfile",
|
|||
"lang/cem/cemcom.ansi+pkg",
|
||||
"lang/cem/cpp.ansi+pkg",
|
||||
"lang/m2/comp+pkg",
|
||||
"lang/pc/comp+pkg",
|
||||
"plat/"..plat.."+tools",
|
||||
"util/ack+pkg",
|
||||
"util/misc+pkg",
|
||||
|
|
Loading…
Reference in a new issue