--- /dev/null
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."lang/pc/comp/"
+
+local extract_parameters = simple {
+ outputs = {
+ "%U%/debugcst.h",
+ "%U%/density.h",
+ "%U%/errout.h",
+ "%U%/idfsize.h",
+ "%U%/inputtype.h",
+ "%U%/numsize.h",
+ "%U%/strsize.h",
+ "%U%/target_sizes.h",
+ "%U%/nocross.h",
+ "%U%/dbsymtab.h",
+ },
+
+ command = {
+ "cd %out[1]:dirname% && %in[1]% %in[2]%"
+ },
+
+ file (d.."make.hfiles"),
+ file (d.."Parameters")
+}
+
+local lpars = LLgen {
+ simple {
+ outputs = {"%U%/tokenfile.g"},
+ command = {
+ "%in[1]% < %in[2]% > %out[1]%"
+ },
+ file (d.."make.tokfile"),
+ file (d.."tokenname.c")
+ },
+ file (d.."program.g"),
+ file (d.."declar.g"),
+ file (d.."expression.g"),
+ file (d.."statement.g"),
+}
+
+local allocd_header = simple {
+ class = "allocd_header",
+ command = {
+ "%in[1]% < %in[2]% > %out[1]%"
+ },
+
+ file (d.."make.allocd")
+}
+
+local cfile_with_headers = cfile {
+ class = "cfile_with_headers",
+ dynamicheaders = {
+ file (d),
+ extract_parameters,
+ allocd_header { outputs = {"%U%/def.h"}, (d.."def.H") },
+ allocd_header { outputs = {"%U%/type.h"}, (d.."type.H") },
+ allocd_header { outputs = {"%U%/scope.h"}, (d.."scope.H") },
+ allocd_header { outputs = {"%U%/node.h"}, (d.."node.H") },
+ allocd_header { outputs = {"%U%/desig.h"}, (d.."desig.H") },
+ lpars
+ }
+}
+
+lang_pc_compiler = cprogram {
+ CDEFINES = {PARENT, "-DSTATIC=static"},
+
+ cfile_with_headers (d.."LLlex.c"),
+ cfile_with_headers (d.."LLmessage.c"),
+ cfile_with_headers (d.."body.c"),
+ cfile_with_headers (d.."chk_expr.c"),
+ cfile_with_headers (d.."code.c"),
+ cfile_with_headers (d.."cstoper.c"),
+ cfile_with_headers (d.."def.c"),
+ cfile_with_headers (d.."desig.c"),
+ cfile_with_headers (d.."enter.c"),
+ cfile_with_headers (d.."error.c"),
+ cfile_with_headers (d.."idf.c"),
+ cfile_with_headers (d.."input.c"),
+ cfile_with_headers (d.."label.c"),
+ cfile_with_headers (d.."lookup.c"),
+ cfile_with_headers (d.."main.c"),
+ cfile_with_headers (d.."misc.c"),
+ cfile_with_headers (d.."node.c"),
+ cfile_with_headers (d.."options.c"),
+ cfile_with_headers (d.."progs.c"),
+ cfile_with_headers (d.."readwrite.c"),
+ cfile_with_headers (d.."scope.c"),
+ cfile_with_headers (d.."stab.c"),
+ cfile_with_headers (d.."tokenname.c"),
+ cfile_with_headers (d.."type.c"),
+ cfile_with_headers (d.."typequiv.c"),
+
+ foreach {
+ rule = cfile_with_headers,
+ ith { lpars, from=2 }
+ },
+
+ cfile_with_headers {
+ simple {
+ outputs = {"%U%-symbol2str.c"},
+ command = {
+ "%in[1]% < %in[2]% > %out[1]%"
+ },
+
+ file (d.."make.tokcase"),
+ file (d.."tokenname.c")
+ }
+ },
+
+ cfile_with_headers {
+ CEXTRAFLAGS = "-I"..d,
+ tabgen (d.."char.tab")
+ },
+
+ cfile_with_headers {
+ simple {
+ outputs = {"%U%-next.c"},
+ command = {
+ "%in% > %out%"
+ },
+
+ file (d.."make.next"),
+
+ file (d.."def.H"),
+ file (d.."type.H"),
+ file (d.."node.H"),
+ file (d.."scope.H"),
+ file (d.."desig.H"),
+ file (d.."tmpvar.C"),
+ file (d.."casestat.C"),
+ }
+ },
+
+ cfile_with_headers {
+ allocd_header { outputs = {"%U%-tmpvar.c"}, (d.."tmpvar.C") }
+ },
+
+ cfile_with_headers {
+ allocd_header { outputs = {"%U%-casestat.c"}, (d.."casestat.C") }
+ },
+
+ lib_em_mes,
+ lib_emk,
+ lib_em_data,
+ lib_input,
+ lib_assert,
+ lib_alloc,
+ lib_flt_arith,
+ lib_print,
+ lib_string,
+ lib_system,
+
+ outputs = {"%U%/em_pc"},
+ install = {
+ pm.install( "%BINDIR%%PLATDEP%/em_pc"),
+ pm.install(d.."em_pc.6", "%BINDIR%/man/man6/em_pc.6"),
+ }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1 2006-07-22 21:03:07 dtrg
+-- Added support for the Pascal compiler.
+--
\ No newline at end of file