Pascal compiler builds.
This commit is contained in:
parent
00c67fcc0e
commit
e770d09dc8
|
@ -14,6 +14,7 @@ installable {
|
||||||
"lang/basic/src+pkg",
|
"lang/basic/src+pkg",
|
||||||
"lang/cem/cemcom.ansi+pkg",
|
"lang/cem/cemcom.ansi+pkg",
|
||||||
"lang/m2/comp+pkg",
|
"lang/m2/comp+pkg",
|
||||||
|
"lang/pc/comp+pkg",
|
||||||
"plat/pc86+pkg",
|
"plat/pc86+pkg",
|
||||||
"util/ack+pkg",
|
"util/ack+pkg",
|
||||||
"util/amisc+pkg",
|
"util/amisc+pkg",
|
||||||
|
|
|
@ -66,6 +66,7 @@ normalrule {
|
||||||
ins = {
|
ins = {
|
||||||
"./make.next",
|
"./make.next",
|
||||||
"./*.H",
|
"./*.H",
|
||||||
|
"./*.C",
|
||||||
},
|
},
|
||||||
outleaves = { "next.c" },
|
outleaves = { "next.c" },
|
||||||
commands = {
|
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/cemcom.ansi+pkg",
|
||||||
"lang/cem/cpp.ansi+pkg",
|
"lang/cem/cpp.ansi+pkg",
|
||||||
"lang/m2/comp+pkg",
|
"lang/m2/comp+pkg",
|
||||||
|
"lang/pc/comp+pkg",
|
||||||
"plat/"..plat.."+tools",
|
"plat/"..plat.."+tools",
|
||||||
"util/ack+pkg",
|
"util/ack+pkg",
|
||||||
"util/misc+pkg",
|
"util/misc+pkg",
|
||||||
|
|
Loading…
Reference in a new issue