First version in CVS.
authordtrg <none@none>
Thu, 20 Jul 2006 23:24:28 +0000 (23:24 +0000)
committerdtrg <none@none>
Thu, 20 Jul 2006 23:24:28 +0000 (23:24 +0000)
55 files changed:
first/c.pm [new file with mode: 0644]
first/llgen.pm [new file with mode: 0644]
first/yacc.pm [new file with mode: 0644]
lang/cem/cemcom.ansi/pmfile [new file with mode: 0644]
lang/cem/cemcom/pmfile [new file with mode: 0644]
mach/6500/dl/pmfile [new file with mode: 0644]
mach/6500/libem/pmfile [new file with mode: 0644]
mach/6500/pmfile [new file with mode: 0644]
mach/6800/pmfile [new file with mode: 0644]
mach/6805/pmfile [new file with mode: 0644]
mach/6809/pmfile [new file with mode: 0644]
mach/arm/cv/pmfile [new file with mode: 0644]
mach/arm/pmfile [new file with mode: 0644]
mach/i386/cv/pmfile [new file with mode: 0644]
mach/i386/pmfile [new file with mode: 0644]
mach/i80/pmfile [new file with mode: 0644]
mach/i86/pmfile [new file with mode: 0644]
mach/m68020/pmfile [new file with mode: 0644]
mach/m68k2/pmfile [new file with mode: 0644]
mach/m68k4/pmfile [new file with mode: 0644]
mach/ns/pmfile [new file with mode: 0644]
mach/pdp/pmfile [new file with mode: 0644]
mach/proto/as/pmfile [new file with mode: 0644]
mach/proto/cg/pmfile [new file with mode: 0644]
mach/proto/ncg/pmfile [new file with mode: 0644]
mach/proto/pmfile [new file with mode: 0644]
mach/s2650/pmfile [new file with mode: 0644]
mach/vax4/pmfile [new file with mode: 0644]
mach/z80/pmfile [new file with mode: 0644]
mach/z8000/pmfile [new file with mode: 0644]
modules/src/alloc/pmfile [new file with mode: 0644]
modules/src/assert/pmfile [new file with mode: 0644]
modules/src/em_code/pmfile [new file with mode: 0644]
modules/src/em_mes/pmfile [new file with mode: 0644]
modules/src/flt_arith/pmfile [new file with mode: 0644]
modules/src/idf/pmfile [new file with mode: 0644]
modules/src/input/pmfile [new file with mode: 0644]
modules/src/object/pmfile [new file with mode: 0644]
modules/src/print/pmfile [new file with mode: 0644]
modules/src/read_em/pmfile [new file with mode: 0644]
modules/src/string/pmfile [new file with mode: 0644]
modules/src/system/pmfile [new file with mode: 0644]
util/ack/pmfile [new file with mode: 0644]
util/amisc/pmfile [new file with mode: 0644]
util/arch/pmfile [new file with mode: 0644]
util/ceg/as_parser/pmfile [new file with mode: 0644]
util/ceg/assemble/pmfile [new file with mode: 0644]
util/ceg/ce_back/pmfile [new file with mode: 0644]
util/ceg/pmfile [new file with mode: 0644]
util/cgg/pmfile [new file with mode: 0644]
util/cmisc/pmfile [new file with mode: 0644]
util/cpp/pmfile [new file with mode: 0644]
util/data/pmfile [new file with mode: 0644]
util/misc/pmfile [new file with mode: 0644]
util/ncgg/pmfile [new file with mode: 0644]

diff --git a/first/c.pm b/first/c.pm
new file mode 100644 (file)
index 0000000..eeb3138
--- /dev/null
@@ -0,0 +1,143 @@
+-- pm includefile to compile *host* C programs.
+
+-- Standard Lua boilerplate.
+
+local io_open = io.open
+local string_gsub = string.gsub
+local string_gfind = string.gfind
+local table_insert = table.insert
+local table_getn = table.getn
+local filetime = pm.filetime
+
+-- Define some variables.
+
+CCOMPILER = "gcc"
+CC = "%CCOMPILER% %CBUILDFLAGS% %CDYNINCLUDES% %CINCLUDES% %CDEFINES% %CEXTRAFLAGS% -c -o %out% %in%"
+CPROGRAM = "%CCOMPILER% %CBUILDFLAGS% %CLINKFLAGS% %CEXTRAFLAGS% -o %out% %in% %CLIBRARIES%"
+CDEPENDS = "%CCOMPILER% %CBUILDFLAGS% %CDYNINCLUDES% %CINCLUDES% %CDEFINES% %CEXTRAFLAGS% -MM -MG %in% > %out%"
+AR = "%RM% %out% && ar cr %out% %in%"
+
+CBUILDFLAGS = "-g -Os"
+CINCLUDES = {}
+CDEFINES = {}
+CEXTRAFLAGS = ""
+CLINKFLAGS = ""
+CDYNINCLUDES = ""
+CLIBRARIES = ""
+
+--- Manage C file dependencies ----------------------------------------------
+
+local dependency_cache = {}
+local function load_dependency_file(fn)
+       local o = dependency_cache[fn]
+       if o then
+               return o
+       end
+       
+       -- Read in the dependency file.
+       
+       local f = io_open(fn)
+       if not f then
+               print("failed to open "..fn)
+               return nil
+       end
+       f = f:read("*a")
+       
+       -- Massage the dependency file into a string containing one unescaped
+       -- filename per line.
+       
+       f = string_gsub(f, "^.*[^\\]: *", "")
+       f = string_gsub(f, "\\\r?\n", "")
+       f = string_gsub(f, "([^\\]) +", "%1\n")
+       f = string_gsub(f, "\\", "")
+       
+       -- Parse the string.
+       
+       o = {}
+       for l in string_gfind(f, "[^\n]+") do
+               table_insert(o, l)
+       end
+       
+       dependency_cache[fn] = o
+       return o
+end
+
+-- This clause specialises 'simple' to add support for smart dependencies of C
+-- files.
+
+simple_with_clike_dependencies = simple {
+       class = "simple_with_clike_dependencies",
+       makedepends = {"%CDEPENDS%"},
+
+       __init = function(self, p)
+               simple.__init(self, p)
+               
+               -- If we're a class, don't verify.
+               
+               if ((type(p) == "table") and p.class) then
+                       return
+               end
+
+               -- If dynamicheaders is an object, turn it into a singleton list.
+               
+               if self.dynamicheaders then
+                       if (type(self.dynamicheaders) ~= "table") then
+                               self:__error("doesn't know what to do with dynamicheaders, which ",
+                                       "should be a list or an object but was a ", type(self.dynamicheaders))
+                       end
+                       if self.dynamicheaders.class then
+                               self.dynamicheaders = {self.dynamicheaders}
+                       end
+               end
+       end,
+       
+       __dependencies = function(self, inputs, outputs)
+               local obj = simple {
+                       CDYNINCLUDES = self.CDYNINCLUDES,
+                       command = self.makedepends,
+                       outputs = {"%U%-%I%.d"},
+                       unpack(inputs)
+               }
+               local o = obj:__build()
+               local depends = load_dependency_file(o[1])
+               if not depends then
+                       self:__error("could not determine the dependencies for ",
+                               pm.rendertable(inputs))
+               end
+               return depends
+       end,
+       
+       __buildadditionalchildren = function(self)
+               self.CDYNINCLUDES = ""
+               if self.dynamicheaders then
+                       for _, i in ipairs(self.dynamicheaders) do
+                               local o = i:__build()
+                               if o[1] then
+                                       self.CDYNINCLUDES = self.CDYNINCLUDES..' "-I'..string_gsub(o[1], "/[^/]*$", "")..'"'
+                               end
+                       end
+               end
+       end
+}
+
+-- These are the publically useful clauses.
+
+cfile = simple_with_clike_dependencies {
+       class = "cfile",
+       command = {"%CC%"},
+       outputs = {"%U%-%I%.o"},
+}
+
+cprogram = simple {
+       class = "cprogram",
+       command = {"%CPROGRAM%"},
+       outputs = {"%U%-%I%"},
+}
+
+clibrary = simple {
+       class = "clibrary",
+       command = {
+               "%AR%"
+       },
+       outputs = {"%U%-%I%.a"},
+}
diff --git a/first/llgen.pm b/first/llgen.pm
new file mode 100644 (file)
index 0000000..129f032
--- /dev/null
@@ -0,0 +1,34 @@
+-- $Source$
+-- $State$
+
+-- This is unpleasant. LLgen can generate an arbitrary number of output files,
+-- which means we need our own output filename generator.
+
+LLgen = simple {
+       class = "LLgen",
+       command = {
+               "rm -f %out%",
+               "cd %out[1]:dirname% && LLgen %in%"
+       },
+       
+       outputs = {"%U%/" },
+       __outputs = function(self, inputs)
+               local o = simple.__outputs(self, inputs)[1]
+               
+               local outputs = {o.."Lpars.h", o.."Lpars.c"}
+               
+               for _, i in ipairs(inputs) do
+                       i = string.gsub(i, "^.*/", "")
+                       i = string.gsub(i, "%.g$", ".c")
+                       table.insert(outputs, o..i)
+               end
+               
+               return outputs
+       end
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
\ No newline at end of file
diff --git a/first/yacc.pm b/first/yacc.pm
new file mode 100644 (file)
index 0000000..174bcf0
--- /dev/null
@@ -0,0 +1,18 @@
+yacc = simple {
+       class = "yacc",
+       outputs = {"%U%/%I%.c"},
+       
+       command = {
+               "yacc -t -b %{return posix.dirname(self.out[1])}%/y -d %in%",
+               "mv %{return posix.dirname(self.out[1])}%/y.tab.c %out%"
+       }
+}
+
+flex = simple {
+       class = "flex",
+       outputs = {"%U%/%I%.c"},
+       
+       command = {
+               "flex -s -t %in% > %out%"
+       }
+}
diff --git a/lang/cem/cemcom.ansi/pmfile b/lang/cem/cemcom.ansi/pmfile
new file mode 100644 (file)
index 0000000..a7932df
--- /dev/null
@@ -0,0 +1,216 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."lang/cem/cemcom.ansi/"
+
+local extract_parameters = simple {
+       outputs = {
+               "%U%/lint.h",
+               "%U%/pathlength.h",
+               "%U%/errout.h",
+               "%U%/idfsize.h",
+               "%U%/numsize.h",
+               "%U%/nparams.h",
+               "%U%/ifdepth.h",
+               "%U%/density.h",
+               "%U%/macbuf.h",
+               "%U%/strsize.h",
+               "%U%/trgt_sizes.h",
+               "%U%/botch_free.h",
+               "%U%/dataflow.h",
+               "%U%/debug.h",
+               "%U%/use_tmp.h",
+               "%U%/parbufsize.h",
+               "%U%/textsize.h",
+               "%U%/inputtype.h",
+               "%U%/nopp.h",
+               "%U%/nobitfield.h",
+               "%U%/spec_arith.h",
+               "%U%/static.h",
+               "%U%/nocross.h",
+               "%U%/regcount.h",
+               "%U%/dbsymtab.h",               
+       },
+       
+       command = {
+               "cd %out[1]:dirname% && %in[1]% %in[2]%"
+       },
+       
+       file (d.."make.hfiles"),
+       file (d.."BigPars")
+}
+
+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"),
+       file (d.."ival.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%/code.h"},          (d.."code.str") },
+               allocd_header { outputs = {"%U%/declar.h"},        (d.."declar.str") },
+               allocd_header { outputs = {"%U%/def.h"},           (d.."def.str") },
+               allocd_header { outputs = {"%U%/expr.h"},          (d.."expr.str") },
+               allocd_header { outputs = {"%U%/field.h"},         (d.."field.str") },
+               allocd_header { outputs = {"%U%/estack.h"},        (d.."estack.str") },
+               allocd_header { outputs = {"%U%/util.h"},          (d.."util.str") },
+               allocd_header { outputs = {"%U%/proto.h"},         (d.."proto.str") },
+               allocd_header { outputs = {"%U%/replace.h"},       (d.."replace.str") },
+               allocd_header { outputs = {"%U%/idf.h"},           (d.."idf.str") },
+               allocd_header { outputs = {"%U%/macro.h"},         (d.."macro.str") },
+               allocd_header { outputs = {"%U%/stack.h"},         (d.."stack.str") },
+               allocd_header { outputs = {"%U%/stmt.h"},          (d.."stmt.str") },
+               allocd_header { outputs = {"%U%/struct.h"},        (d.."struct.str") },
+               allocd_header { outputs = {"%U%/switch.h"},        (d.."switch.str") },
+               allocd_header { outputs = {"%U%/type.h"},          (d.."type.str") },
+               allocd_header { outputs = {"%U%/l_brace.h"},       (d.."l_brace.str") },
+               allocd_header { outputs = {"%U%/l_state.h"},       (d.."l_state.str") },
+               allocd_header { outputs = {"%U%/l_outdef.h"},      (d.."l_outdef.str") },
+               lpars
+       }
+}
+       
+lang_cem_cemcom_ansi = cprogram {
+       cfile_with_headers (d.."LLlex.c"),
+       cfile_with_headers (d.."LLmessage.c"),
+       cfile_with_headers (d.."arith.c"),
+       cfile_with_headers (d.."blocks.c"),
+       cfile_with_headers (d.."ch3.c"),
+       cfile_with_headers (d.."ch3bin.c"),
+       cfile_with_headers (d.."ch3mon.c"),
+       cfile_with_headers (d.."code.c"),
+       cfile_with_headers (d.."conversion.c"),
+       cfile_with_headers (d.."cstoper.c"),
+       cfile_with_headers (d.."dataflow.c"),
+       cfile_with_headers (d.."declarator.c"),
+       cfile_with_headers (d.."decspecs.c"),
+       cfile_with_headers (d.."domacro.c"),
+       cfile_with_headers (d.."dumpidf.c"),
+       cfile_with_headers (d.."error.c"),
+       cfile_with_headers (d.."eval.c"),
+       cfile_with_headers (d.."expr.c"),
+       cfile_with_headers (d.."field.c"),
+       cfile_with_headers (d.."fltcstoper.c"),
+       cfile_with_headers (d.."idf.c"),
+       cfile_with_headers (d.."init.c"),
+       cfile_with_headers (d.."input.c"),
+       cfile_with_headers (d.."l_comment.c"),
+       cfile_with_headers (d.."l_ev_ord.c"),
+       cfile_with_headers (d.."l_lint.c"),
+       cfile_with_headers (d.."l_misc.c"),
+       cfile_with_headers (d.."l_outdef.c"),
+       cfile_with_headers (d.."l_states.c"),
+       cfile_with_headers (d.."label.c"),
+       cfile_with_headers (d.."main.c"),
+       cfile_with_headers (d.."options.c"),
+       cfile_with_headers (d.."pragma.c"),
+       cfile_with_headers (d.."proto.c"),
+       cfile_with_headers (d.."replace.c"),
+       cfile_with_headers (d.."skip.c"),
+       cfile_with_headers (d.."stab.c"),
+       cfile_with_headers (d.."stack.c"),
+       cfile_with_headers (d.."struct.c"),
+       cfile_with_headers (d.."switch.c"),
+       cfile_with_headers (d.."tokenname.c"),
+       cfile_with_headers (d.."type.c"),
+       cfile_with_headers (d.."util.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.."code.str"),
+                       file (d.."declar.str"),
+                       file (d.."def.str"),
+                       file (d.."expr.str"),
+                       file (d.."field.str"),
+                       file (d.."estack.str"),
+                       file (d.."util.str"),
+                       file (d.."proto.str"),
+                       file (d.."replace.str"),
+                       file (d.."idf.str"),
+                       file (d.."macro.str"),
+                       file (d.."stack.str"),
+                       file (d.."stmt.str"),
+                       file (d.."struct.str"),
+                       file (d.."switch.str"),
+                       file (d.."type.str"),
+                       file (d.."l_brace.str"),
+                       file (d.."l_state.str"),
+                       file (d.."l_outdef.str"),
+               }
+       },
+
+       lib_em_mes,
+       lib_emk,
+       lib_em_data,
+       lib_input,
+       lib_assert,
+       lib_alloc,
+       lib_flt_arith,
+       lib_print,
+       lib_system,
+       lib_string,
+       
+       outputs = {"%U%/em_cemcom.ansi"},
+       install = {
+               pm.install(                    BINDIR..PLATDEP.."/em_cemcom.ansi"),
+               pm.install(d.."cemcom.ansi.1", BINDIR.."/man/man1/cemcom.ansi.1"),
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/lang/cem/cemcom/pmfile b/lang/cem/cemcom/pmfile
new file mode 100644 (file)
index 0000000..11e6741
--- /dev/null
@@ -0,0 +1,215 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."lang/cem/cemcom/"
+
+local extract_parameters = simple {
+       outputs = {
+               "%U%/lint.h",
+               "%U%/pathlength.h",
+               "%U%/errout.h",
+               "%U%/idfsize.h",
+               "%U%/numsize.h",
+               "%U%/nparams.h",
+               "%U%/ifdepth.h",
+               "%U%/density.h",
+               "%U%/lapbuf.h",
+               "%U%/strsize.h",
+               "%U%/target_sizes.h",
+               "%U%/botch_free.h",
+               "%U%/dataflow.h",
+               "%U%/debug.h",
+               "%U%/use_tmp.h",
+               "%U%/parbufsize.h",
+               "%U%/textsize.h",
+               "%U%/inputtype.h",
+               "%U%/nopp.h",
+               "%U%/nobitfield.h",
+               "%U%/spec_arith.h",
+               "%U%/static.h",
+               "%U%/nofloat.h",
+               "%U%/noRoption.h",
+               "%U%/nocross.h",
+               "%U%/regcount.h",
+               "%U%/dbsymtab.h",
+       },
+       
+       command = {
+               "cd %out[1]:dirname% && %in[1]% %in[2]%"
+       },
+       
+       file (d.."make.hfiles"),
+       file (d.."BigPars")
+}
+
+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"),
+       file (d.."ival.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%/code.h"},          (d.."code.str") },
+               allocd_header { outputs = {"%U%/declar.h"},        (d.."declar.str") },
+               allocd_header { outputs = {"%U%/def.h"},           (d.."def.str") },
+               allocd_header { outputs = {"%U%/expr.h"},          (d.."expr.str") },
+               allocd_header { outputs = {"%U%/field.h"},         (d.."field.str") },
+               allocd_header { outputs = {"%U%/estack.h"},        (d.."estack.str") },
+               allocd_header { outputs = {"%U%/util.h"},          (d.."util.str") },
+               allocd_header { outputs = {"%U%/decspecs.h"},      (d.."decspecs.str") },
+               allocd_header { outputs = {"%U%/idf.h"},           (d.."idf.str") },
+               allocd_header { outputs = {"%U%/macro.h"},         (d.."macro.str") },
+               allocd_header { outputs = {"%U%/stack.h"},         (d.."stack.str") },
+               allocd_header { outputs = {"%U%/stmt.h"},          (d.."stmt.str") },
+               allocd_header { outputs = {"%U%/struct.h"},        (d.."struct.str") },
+               allocd_header { outputs = {"%U%/switch.h"},        (d.."switch.str") },
+               allocd_header { outputs = {"%U%/type.h"},          (d.."type.str") },
+               allocd_header { outputs = {"%U%/l_brace.h"},       (d.."l_brace.str") },
+               allocd_header { outputs = {"%U%/l_state.h"},       (d.."l_state.str") },
+               allocd_header { outputs = {"%U%/l_outdef.h"},      (d.."l_outdef.str") },
+               lpars
+       }
+}
+       
+lang_cem_cemcom = cprogram {
+       cfile_with_headers (d.."LLlex.c"),
+       cfile_with_headers (d.."LLmessage.c"),
+       cfile_with_headers (d.."arith.c"),
+       cfile_with_headers (d.."asm.c"),
+       cfile_with_headers (d.."blocks.c"),
+       cfile_with_headers (d.."ch7.c"),
+       cfile_with_headers (d.."ch7bin.c"),
+       cfile_with_headers (d.."ch7mon.c"),
+       cfile_with_headers (d.."code.c"),
+       cfile_with_headers (d.."conversion.c"),
+       cfile_with_headers (d.."cstoper.c"),
+       cfile_with_headers (d.."dataflow.c"),
+       cfile_with_headers (d.."declarator.c"),
+       cfile_with_headers (d.."decspecs.c"),
+       cfile_with_headers (d.."domacro.c"),
+       cfile_with_headers (d.."dumpidf.c"),
+       cfile_with_headers (d.."error.c"),
+       cfile_with_headers (d.."eval.c"),
+       cfile_with_headers (d.."expr.c"),
+       cfile_with_headers (d.."field.c"),
+       cfile_with_headers (d.."idf.c"),
+       cfile_with_headers (d.."init.c"),
+       cfile_with_headers (d.."input.c"),
+       cfile_with_headers (d.."l_comment.c"),
+       cfile_with_headers (d.."l_ev_ord.c"),
+       cfile_with_headers (d.."l_lint.c"),
+       cfile_with_headers (d.."l_misc.c"),
+       cfile_with_headers (d.."l_outdef.c"),
+       cfile_with_headers (d.."l_states.c"),
+       cfile_with_headers (d.."label.c"),
+       cfile_with_headers (d.."main.c"),
+       cfile_with_headers (d.."options.c"),
+       cfile_with_headers (d.."replace.c"),
+       cfile_with_headers (d.."scan.c"),
+       cfile_with_headers (d.."skip.c"),
+       cfile_with_headers (d.."stack.c"),
+       cfile_with_headers (d.."struct.c"),
+       cfile_with_headers (d.."switch.c"),
+       cfile_with_headers (d.."tokenname.c"),
+       cfile_with_headers (d.."type.c"),
+       cfile_with_headers (d.."util.c"),
+       cfile_with_headers (d.."stab.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.."code.str"),
+                       file (d.."declar.str"),
+                       file (d.."decspecs.str"),
+                       file (d.."def.str"),
+                       file (d.."expr.str"),
+                       file (d.."field.str"),
+                       file (d.."estack.str"),
+                       file (d.."util.str"),
+                       file (d.."idf.str"),
+                       file (d.."macro.str"),
+                       file (d.."stack.str"),
+                       file (d.."stmt.str"),
+                       file (d.."struct.str"),
+                       file (d.."switch.str"),
+                       file (d.."type.str"),
+                       file (d.."l_brace.str"),
+                       file (d.."l_state.str"),
+                       file (d.."l_outdef.str"),
+               }
+       },
+
+       lib_em_mes,
+       lib_emk,
+       lib_em_data,
+       lib_input,
+       lib_assert,
+       lib_alloc,
+       lib_flt_arith,
+       lib_print,
+       lib_system,
+       lib_string,
+       
+       outputs = {"%U%/em_cemcom"},
+       install = {
+               pm.install(                    BINDIR..PLATDEP.."/em_cemcom"),
+               pm.install(d.."cemcom.1",      BINDIR.."/man/man1/cemcom.1"),
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/6500/dl/pmfile b/mach/6500/dl/pmfile
new file mode 100644 (file)
index 0000000..b5c904c
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = "mach/6500/dl/"
+
+tool_6500_dl = cprogram {
+       cfile (d.."dl.c"),
+       
+       lib_object,
+       
+       outputs = {"%U%/dl"},
+       install = pm.install(BINDIR..PLATDEP.."/6500/dl")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/6500/libem/pmfile b/mach/6500/libem/pmfile
new file mode 100644 (file)
index 0000000..56729e4
--- /dev/null
@@ -0,0 +1,103 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/6500/libem/"
+
+proto_libem = aal {
+       outputs = {"%U%/libem-%ARCH%.a"},
+       install = pm.install("%BINDIR%lib/%ARCH%/tail_em"),
+
+       as (d.."adi4.s"),
+       as (d.."cmi.s"),
+       as (d.."cmi4.s"),
+       as (d.."sbi4.s"),
+       as (d.."addsub.s"),
+       as (d.."cmu4.s"),
+       as (d.."dum_float.s"),
+       as (d.."dvi4.s"),
+       as (d.."dvu4.s"),
+       as (d.."lar.s"),
+       as (d.."lol.s"),
+       as (d.."los.s"),
+       as (d.."loil.s"),
+       as (d.."loi1.s"),
+       as (d.."loi.s"),
+       as (d.."mli4.s"),
+       as (d.."mlu.s"),
+       as (d.."mlu4.s"),
+       as (d.."mul4.s"),
+       as (d.."rmi.s"),
+       as (d.."rmi4.s"),
+       as (d.."div4.s"),
+       as (d.."rmu.s"),
+       as (d.."dvi.s"),
+       as (d.."rmu4.s"),
+       as (d.."duv4.s"),
+       as (d.."ngi4.s"),
+       as (d.."rtt.s"),
+       as (d.."ret.s"),
+       as (d.."sar.s"),
+       as (d.."aar.s"),
+       as (d.."adi.s"),
+       as (d.."sbi.s"),
+       as (d.."mli.s"),
+       as (d.."ngi.s"),
+       as (d.."set.s"),
+       as (d.."zer.s"),
+       as (d.."stl.s"),
+       as (d.."sts.s"),
+       as (d.."sdl.s"),
+       as (d.."sti.s"),
+       as (d.."stil.s"),
+       as (d.."blm.s"),
+       as (d.."sti1.s"),
+       as (d.."test2.s"),
+       as (d.."testFFh.s"),
+       as (d.."trap.s"),
+       as (d.."ldi.s"),
+       as (d.."data.s"),
+       as (d.."zri.s"),
+       as (d.."locaddr.s"),
+       as (d.."and.s"),
+       as (d.."asp.s"),
+       as (d.."cii.s"),
+       as (d.."cms.s"),
+       as (d.."cmu.s"),
+       as (d.."com.s"),
+       as (d.."csa.s"),
+       as (d.."csb.s"),
+       as (d.."dup.s"),
+       as (d.."dvu.s"),
+       as (d.."exg.s"),
+       as (d.."exg2.s"),
+       as (d.."gto.s"),
+       as (d.."indir.s"),
+       as (d.."inn.s"),
+       as (d.."ior.s"),
+       as (d.."lcs.s"),
+       as (d.."lxa1.s"),
+       as (d.."lxa2.s"),
+       as (d.."lxl.s"),
+       as (d.."pro.s"),
+       as (d.."rol.s"),
+       as (d.."rol4.s"),
+       as (d.."ror.s"),
+       as (d.."ror4.s"),
+       as (d.."sli.s"),
+       as (d.."sli4.s"),
+       as (d.."sri.s"),
+       as (d.."sri4.s"),
+       as (d.."teq.s"),
+       as (d.."tge.s"),
+       as (d.."tgt.s"),
+       as (d.."tle.s"),
+       as (d.."tlt.s"),
+       as (d.."tne.s"),
+       as (d.."xor.s"),
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/6500/pmfile b/mach/6500/pmfile
new file mode 100644 (file)
index 0000000..9de1a9c
--- /dev/null
@@ -0,0 +1,23 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/6500/"
+
+include (d.."dl/pmfile")
+--include (d.."libem/pmfile")
+
+mach_6500 = group {
+       ARCH = "6500",
+       
+       proto_cg,
+       proto_as,
+       tool_6500_dl,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/6800/pmfile b/mach/6800/pmfile
new file mode 100644 (file)
index 0000000..516ab67
--- /dev/null
@@ -0,0 +1,16 @@
+-- $Source$
+-- $State$
+
+mach_6800 = group {
+       ARCH = "6800",
+       
+       proto_as,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/mach/6805/pmfile b/mach/6805/pmfile
new file mode 100644 (file)
index 0000000..926369a
--- /dev/null
@@ -0,0 +1,16 @@
+-- $Source$
+-- $State$
+
+mach_6805 = group {
+       ARCH = "6805",
+       
+       proto_as,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/6809/pmfile b/mach/6809/pmfile
new file mode 100644 (file)
index 0000000..3fc2897
--- /dev/null
@@ -0,0 +1,16 @@
+-- $Source$
+-- $State$
+
+mach_6809 = group {
+       ARCH = "6809",
+       
+       proto_as,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/arm/cv/pmfile b/mach/arm/cv/pmfile
new file mode 100644 (file)
index 0000000..8ca8a9a
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/arm/cv/"
+
+tool_arm_cv = cprogram {
+       cfile (d.."cv.c"),
+       
+       lib_object,
+       
+       outputs = {"%U%/cv"},
+       install = pm.install(BINDIR.."%PLATDEP%/arm/dl")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/arm/pmfile b/mach/arm/pmfile
new file mode 100644 (file)
index 0000000..bb32e09
--- /dev/null
@@ -0,0 +1,22 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/arm/"
+
+include (d.."cv/pmfile")
+
+mach_arm = group {
+       ARCH = "arm",
+       
+       proto_as,
+       proto_ncg { ARCHDIR = "arm" },
+       tool_arm_cv,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/i386/cv/pmfile b/mach/i386/cv/pmfile
new file mode 100644 (file)
index 0000000..c68a47b
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/i386/cv/"
+
+tool_i386_cv = cprogram {
+       cfile (d.."cv.c"),
+       
+       lib_object,
+       
+       outputs = {"%U%/cv"},
+       install = pm.install(BINDIR.."%PLATDEP%/i386/dl")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/i386/pmfile b/mach/i386/pmfile
new file mode 100644 (file)
index 0000000..a31ad29
--- /dev/null
@@ -0,0 +1,22 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/i386/"
+
+include (d.."cv/pmfile")
+
+mach_i386 = group {
+       ARCH = "i386",
+       
+       proto_as,
+       proto_ncg { ARCHDIR = "i386" },
+       tool_i386_cv,
+       
+       install = pm.install("%ROOTDIR%lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/i80/pmfile b/mach/i80/pmfile
new file mode 100644 (file)
index 0000000..1fdc345
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/i80/"
+
+mach_i80 = group {
+       ARCH = "i80",
+       
+       proto_as,
+       proto_ncg { ARCHDIR = "i80" },
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/i86/pmfile b/mach/i86/pmfile
new file mode 100644 (file)
index 0000000..f3f769c
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/i86/"
+
+mach_i86 = group {
+       ARCH = "i86",
+       
+       proto_as,
+       proto_ncg { ARCHDIR = "i86" },
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/m68020/pmfile b/mach/m68020/pmfile
new file mode 100644 (file)
index 0000000..e4f2021
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/m68020/"
+
+mach_m68020 = group {
+       ARCH = "m68020",
+       
+       proto_as,
+       proto_ncg { ARCHDIR = "m68020" },
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/m68k2/pmfile b/mach/m68k2/pmfile
new file mode 100644 (file)
index 0000000..eb2a88e
--- /dev/null
@@ -0,0 +1,20 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/m68k2/"
+
+mach_m68k2 = group {
+       ARCH = "m68k2",
+       
+       proto_as,
+       proto_ncg { ARCHDIR = "m68020" },
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/m68k4/pmfile b/mach/m68k4/pmfile
new file mode 100644 (file)
index 0000000..faf78e2
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/m68k4/"
+
+mach_m68k4 = group {
+       ARCH = "m68k4",
+       
+       proto_ncg { ARCHDIR = "m68020" },
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/ns/pmfile b/mach/ns/pmfile
new file mode 100644 (file)
index 0000000..6696e30
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/ns/"
+
+mach_ns = group {
+       ARCH = "ns",
+       
+       proto_as,
+       proto_ncg { ARCHDIR = "ns" },
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/pdp/pmfile b/mach/pdp/pmfile
new file mode 100644 (file)
index 0000000..7410859
--- /dev/null
@@ -0,0 +1,20 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/pdp/"
+
+mach_pdp = group {
+       ARCH = "pdp",
+       
+       proto_as,
+       proto_cg,
+       proto_ncg { ARCHDIR = "pdp" },
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/mach/proto/as/pmfile b/mach/proto/as/pmfile
new file mode 100644 (file)
index 0000000..f6deeaf
--- /dev/null
@@ -0,0 +1,51 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/proto/as/"
+
+local parser = yacc {
+       simple {
+               outputs = {"%U%-%I%.y"},
+               command = {
+                       "cd %out[1]:dirname% && "..
+                         "%in[2]% -P -I%ROOTDIR%mach/%ARCH%/as -I"..d.." %CINCLUDES% %in[1]% > %out[1]%"
+               },
+               
+               file (d.."comm2.y"),
+               tool_cpp
+       }
+}
+
+local cfile_with_tables = cfile {
+       class = "cfile_with_tables",
+       dynamicheaders = {
+               parser,
+               file (ROOTDIR.."mach/%ARCH%/as/")
+       }
+}
+
+proto_as = cprogram {
+       class = "proto_as",
+       
+       cfile_with_tables (d.."comm3.c"),
+       cfile_with_tables (d.."comm4.c"),
+       cfile_with_tables (d.."comm5.c"),
+       cfile_with_tables (d.."comm6.c"),
+       cfile_with_tables (d.."comm7.c"),
+       cfile_with_tables (d.."comm8.c"),
+       
+       cfile {
+               parser,
+       },
+       
+       lib_object,
+       
+       outputs = {"%U%/%ARCH%-as"},
+       install = pm.install(BINDIR.."%PLATDEP%/%ARCH%/as")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/mach/proto/cg/pmfile b/mach/proto/cg/pmfile
new file mode 100644 (file)
index 0000000..43375e2
--- /dev/null
@@ -0,0 +1,97 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/proto/cg/"
+
+local make_tables = cgg {
+       CGGINCLUDEDIR = (ROOTDIR.."mach/%ARCH%/cg/"),
+       file (ROOTDIR.."mach/%ARCH%/cg/table")
+}
+
+local cfile_with_tables = cfile {
+       class = "cfile_with_tables",
+       dynamicheaders = {
+               make_tables,
+               file (ROOTDIR.."mach/%ARCH%/cg/"),
+               file (ROOTDIR.."mach/")
+       }
+}
+
+proto_cg = cprogram {
+       class = "proto_cg",
+       
+       cfile_with_tables (d.."codegen.c"),
+       cfile_with_tables (d.."compute.c"),
+       cfile_with_tables (d.."equiv.c"),
+       cfile_with_tables (d.."gencode.c"),
+       cfile_with_tables (d.."glosym.c"),
+       cfile_with_tables (d.."move.c"),
+       cfile_with_tables (d.."nextem.c"),
+       cfile_with_tables (d.."reg.c"),
+       cfile_with_tables (d.."regvar.c"),
+       cfile_with_tables (d.."salloc.c"),
+       cfile_with_tables (d.."state.c"),
+       cfile_with_tables (d.."subr.c"),
+       cfile_with_tables (d.."var.c"),
+       cfile_with_tables (d.."fillem.c"),
+       cfile_with_tables (d.."main.c"),
+       
+       cfile {
+               ith { make_tables, i = 1 },
+               dynamicheaders = {
+                       file (ROOTDIR.."mach/%ARCH%/cg/"),
+                       file (d)
+               }
+       },
+       
+       lib_em_data,
+       lib_flt_arith,
+       
+       outputs = {"%U%/%ARCH%-cg"},
+       install = pm.install("%BINDIR%%PLATDEP%/%ARCH%/cg")
+}
+
+--[[
+# genmakefile
+# This genmakefile doesn't have a real comment yet.
+#
+# $Source$
+# $State$
+
+codegenerator() {
+       push
+               addinclude $SRCDIR/src/arch/$1/cg
+               addinclude $OBJDIR/src/arch/$1/cg
+               addincludeq src/arch/proto/cg
+
+               hostcdyn src/arch/$1/cg/tables.c
+               
+               hostprogram $DESTDIR/lib/$1/cg $OBJS \
+                       $DESTDIR/lib/libem_data.a \
+                       $DESTDIR/lib/libflt_arith.a
+
+cat <<EOF
+$OBJDIR/src/arch/$1/cg/tables.c: \
+               $SRCDIR/src/arch/$1/cg/table \
+               $DESTDIR/bin/cpp \
+               $DESTDIR/bin/cgg
+       @echo HOSTCGG $SRCDIR/src/arch/$1/cg/table
+       @mkdir -p \$(dir \$@)
+       @(cd $OBJDIR/src/arch/$1/cg && $DESTDIR/bin/cpp -P -I$SRCDIR/src/arch/$1/cg $SRCDIR/src/arch/$1/cg/table | \
+               $DESTDIR/bin/cgg) > /dev/null
+EOF
+       pop
+}
+
+# Revision history
+# $Log$
+# Revision 1.1  2006-07-20 23:18:19  dtrg
+# First version in CVS.
+#
+--]]
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/mach/proto/ncg/pmfile b/mach/proto/ncg/pmfile
new file mode 100644 (file)
index 0000000..73265db
--- /dev/null
@@ -0,0 +1,61 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/proto/ncg/"
+
+local make_tables = ncgg {
+       NCGGINCLUDEDIR = (ROOTDIR.."mach/%ARCHDIR%/ncg/"),
+       file (ROOTDIR.."mach/%ARCHDIR%/ncg/table")
+}
+
+local cfile_with_tables = cfile {
+       class = "cfile_with_tables",
+       dynamicheaders = {
+               make_tables,
+               file (ROOTDIR.."mach/%ARCH%/ncg/"),
+               file (ROOTDIR.."mach/%ARCHDIR%/ncg/"),
+               file (ROOTDIR.."mach/")
+       }
+}
+
+proto_ncg = cprogram {
+       class = "proto_ncg",
+       
+       cfile_with_tables (d.."codegen.c"),
+       cfile_with_tables (d.."compute.c"),
+       cfile_with_tables (d.."equiv.c"),
+       cfile_with_tables (d.."fillem.c"),
+       cfile_with_tables (d.."gencode.c"),
+       cfile_with_tables (d.."glosym.c"),
+       cfile_with_tables (d.."label.c"),
+       cfile_with_tables (d.."main.c"),
+       cfile_with_tables (d.."move.c"),
+       cfile_with_tables (d.."nextem.c"),
+       cfile_with_tables (d.."reg.c"),
+       cfile_with_tables (d.."regvar.c"),
+       cfile_with_tables (d.."salloc.c"),
+       cfile_with_tables (d.."state.c"),
+       cfile_with_tables (d.."subr.c"),
+       cfile_with_tables (d.."var.c"),
+       
+       cfile {
+               ith { make_tables, i = 1 },
+               dynamicheaders = {
+                       file (ROOTDIR.."mach/%ARCH%/ncg/"),
+                       file (ROOTDIR.."mach/%ARCHDIR%/ncg/"),
+                       file (d)
+               }
+       },
+       
+       lib_em_data,
+       lib_flt_arith,
+       
+       outputs = {"%U%/%ARCH%-ncg"},
+       install = pm.install("%BINDIR%%PLATDEP%/%ARCH%/ncg")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/proto/pmfile b/mach/proto/pmfile
new file mode 100644 (file)
index 0000000..ba5ef96
--- /dev/null
@@ -0,0 +1,14 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/proto/"
+
+include (d.."as/pmfile")
+include (d.."cg/pmfile")
+include (d.."ncg/pmfile")
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/s2650/pmfile b/mach/s2650/pmfile
new file mode 100644 (file)
index 0000000..d9d41c9
--- /dev/null
@@ -0,0 +1,16 @@
+-- $Source$
+-- $State$
+
+mach_s2650 = group {
+       ARCH = "s2650",
+       
+       proto_as,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/vax4/pmfile b/mach/vax4/pmfile
new file mode 100644 (file)
index 0000000..78227c7
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/vax4/"
+
+mach_vax4 = group {
+       ARCH = "vax4",
+       
+       proto_as,
+       proto_cg,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/z80/pmfile b/mach/z80/pmfile
new file mode 100644 (file)
index 0000000..41d92d3
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/z80/"
+
+mach_z80 = group {
+       ARCH = "z80",
+       
+       proto_as,
+       proto_cg,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/mach/z8000/pmfile b/mach/z8000/pmfile
new file mode 100644 (file)
index 0000000..a596356
--- /dev/null
@@ -0,0 +1,19 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."mach/z8000/"
+
+mach_z8000 = group {
+       ARCH = "z8000",
+       
+       proto_as,
+       proto_cg,
+       
+       install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/alloc/pmfile b/modules/src/alloc/pmfile
new file mode 100644 (file)
index 0000000..5200f30
--- /dev/null
@@ -0,0 +1,29 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."modules/src/alloc/"
+lib_alloc = file (LIBDIR.."liballoc.a")
+
+module_alloc = clibrary {
+       cfile (d.."Malloc.c"),
+       cfile (d.."Salloc.c"),
+       cfile (d.."Srealloc.c"),
+       cfile (d.."Realloc.c"),
+       cfile (d.."botch.c"),
+       cfile (d.."clear.c"),
+       cfile (d.."st_alloc.c"),
+       cfile (d.."std_alloc.c"),
+       cfile (d.."No_Mem.c"),
+       
+       outputs = {"%U%/liballoc.a"},
+       install = {
+               pm.install(LIBDIR.."liballoc.a"),
+               pm.install(d.."alloc.h", HEADERDIR.."alloc.h")
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/assert/pmfile b/modules/src/assert/pmfile
new file mode 100644 (file)
index 0000000..72d72b5
--- /dev/null
@@ -0,0 +1,20 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/assert/"
+lib_assert = file (LIBDIR.."libassert.a")
+
+module_assert = clibrary {
+       cfile (d.."BadAssert.c"),
+       
+       outputs = {"%U%/libassert.a"},
+       install = {
+               pm.install(LIBDIR.."libassert.a")
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/em_code/pmfile b/modules/src/em_code/pmfile
new file mode 100644 (file)
index 0000000..85db4f9
--- /dev/null
@@ -0,0 +1,106 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/em_code/"
+lib_eme = file (LIBDIR.."libeme.a")
+lib_emk = file (LIBDIR.."libemk.a")
+
+local em_codeMK_h = simple {
+       outputs = {"%U%-%I%.h"},
+       command = {
+               d.."make.em.gen etc/em_table "..d.."em.nogen > %out%",
+               "cat "..d.."em.nogen >> %out%"
+       },
+       install = pm.install(HEADERDIR.."em_codeEK.h"),
+       
+       file (d.."make.em.gen"),
+       file ("etc/em_table")
+}
+
+local em_cfile = cfile {
+       class = "em_cfile",
+       dynamicheaders = em_codeMK_h
+}
+
+local library_core = group {
+       em_cfile (d.."bhcst.c"),
+       em_cfile (d.."bhdlb.c"),
+       em_cfile (d.."bhdnam.c"),
+       em_cfile (d.."bhfcon.c"),
+       em_cfile (d.."bhicon.c"),
+       em_cfile (d.."bhilb.c"),
+       em_cfile (d.."bhpnam.c"),
+       em_cfile (d.."bhucon.c"),
+       em_cfile (d.."crcst.c"),
+       em_cfile (d.."crdlb.c"),
+       em_cfile (d.."crdnam.c"),
+       em_cfile (d.."crxcon.c"),
+       em_cfile (d.."crilb.c"),
+       em_cfile (d.."crpnam.c"),
+       em_cfile (d.."crscon.c"),
+       em_cfile (d.."cst.c"),
+       em_cfile (d.."dfdlb.c"),
+       em_cfile (d.."dfdnam.c"),
+       em_cfile (d.."dfilb.c"),
+       em_cfile (d.."dlb.c"),
+       em_cfile (d.."dnam.c"),
+       em_cfile (d.."end.c"),
+       em_cfile (d.."endarg.c"),
+       em_cfile (d.."exc.c"),
+       em_cfile (d.."fcon.c"),
+       em_cfile (d.."getid.c"),
+       em_cfile (d.."icon.c"),
+       em_cfile (d.."ilb.c"),
+       em_cfile (d.."insert.c"),
+       em_cfile (d.."internerr.c"),
+       em_cfile (d.."msend.c"),
+       em_cfile (d.."op.c"),
+       em_cfile (d.."opcst.c"),
+       em_cfile (d.."opdlb.c"),
+       em_cfile (d.."opdnam.c"),
+       em_cfile (d.."opilb.c"),
+       em_cfile (d.."opnarg.c"),
+       em_cfile (d.."oppnam.c"),
+       em_cfile (d.."pnam.c"),
+       em_cfile (d.."pro.c"),
+       em_cfile (d.."pronarg.c"),
+       em_cfile (d.."msstart.c"),
+       em_cfile (d.."psdlb.c"),
+       em_cfile (d.."psdnam.c"),
+       em_cfile (d.."pspnam.c"),
+       em_cfile (d.."scon.c"),
+       em_cfile (d.."ucon.c"),
+       em_cfile (d.."C_out.c"),
+       em_cfile (d.."failed.c"),
+       em_cfile (d.."em.c")
+}
+
+module_eme = clibrary {
+       CEXTRAFLAGS = "-DREADABLE_EM",
+       library_core,
+       
+       outputs = {"%U%/libeme.a"},
+       install = {
+               pm.install(LIBDIR.."libeme.a")
+       }
+}
+
+module_emk = clibrary {
+       library_core,
+       
+       outputs = {"%U%/libemk.a"},
+       install = {
+               pm.install(LIBDIR.."libemk.a")
+       }
+}
+
+module_em_code = group {
+       module_eme,
+       module_emk,
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/em_mes/pmfile b/modules/src/em_mes/pmfile
new file mode 100644 (file)
index 0000000..f70ff20
--- /dev/null
@@ -0,0 +1,35 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/em_mes/"
+lib_em_mes = file (LIBDIR.."libem_mes.a")
+
+local library_core = group {
+       cfile (d.."C_ms_err.c"),
+       cfile (d.."C_ms_opt.c"),
+       cfile (d.."C_ms_emx.c"),
+       cfile (d.."C_ms_reg.c"),
+       cfile (d.."C_ms_src.c"),
+       cfile (d.."C_ms_flt.c"),
+       cfile (d.."C_ms_com.c"),
+       cfile (d.."C_ms_par.c"),
+       cfile (d.."C_ms_ego.c"),
+       cfile (d.."C_ms_gto.c"),
+       cfile (d.."C_ms_stb.c"),
+       cfile (d.."C_ms_std.c"),
+}
+
+module_em_mes = clibrary {
+       library_core,
+       
+       outputs = {"%U%/libem_mes.a"},
+       install = {
+               pm.install(LIBDIR.."libem_mes.a")
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/flt_arith/pmfile b/modules/src/flt_arith/pmfile
new file mode 100644 (file)
index 0000000..683cbff
--- /dev/null
@@ -0,0 +1,35 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."modules/src/flt_arith/"
+lib_flt_arith = file (LIBDIR.."libflt_arith.a")
+
+module_flt_arith = clibrary {
+       cfile (d.."flt_ar2flt.c"),
+       cfile (d.."flt_div.c"),
+       cfile (d.."flt_flt2ar.c"),
+       cfile (d.."flt_modf.c"),
+       cfile (d.."flt_str2fl.c"),
+       cfile (d.."flt_cmp.c"),
+       cfile (d.."flt_add.c"),
+       cfile (d.."b64_add.c"),
+       cfile (d.."flt_mul.c"),
+       cfile (d.."flt_nrm.c"),
+       cfile (d.."b64_sft.c"),
+       cfile (d.."flt_umin.c"),
+       cfile (d.."flt_chk.c"),
+       cfile (d.."split.c"),
+       cfile (d.."ucmp.c"),
+       
+       outputs = {"%U%/libflt_arith.a"},
+       install = {
+               pm.install(LIBDIR.."libflt_arith.a"),
+               pm.install(d.."flt_arith.h",             HEADERDIR.."flt_arith.h")
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/idf/pmfile b/modules/src/idf/pmfile
new file mode 100644 (file)
index 0000000..80acffc
--- /dev/null
@@ -0,0 +1,17 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/idf/"
+
+module_idf = group {
+       install = {
+               pm.install(d.."idf_pkg.spec",            HEADERDIR.."idf_pkg.spec"),
+               pm.install(d.."idf_pkg.body",            HEADERDIR.."idf_pkg.body"),
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/input/pmfile b/modules/src/input/pmfile
new file mode 100644 (file)
index 0000000..71be8db
--- /dev/null
@@ -0,0 +1,23 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/input/"
+lib_input = file (LIBDIR.."libinput.a")
+
+module_input = clibrary {
+       cfile (d.."AtEoIF.c"),
+       cfile (d.."AtEoIT.c"),
+
+       outputs = {"%U%/libinput.a"},
+       install = {
+               pm.install(LIBDIR.."libinput.a"),
+               pm.install(d.."inp_pkg.spec",            HEADERDIR.."inp_pkg.spec"),
+               pm.install(d.."inp_pkg.body",            HEADERDIR.."inp_pkg.body")
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/object/pmfile b/modules/src/object/pmfile
new file mode 100644 (file)
index 0000000..2806f50
--- /dev/null
@@ -0,0 +1,55 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/object/"
+lib_object = file (LIBDIR.."libobject.a")
+
+module_object = clibrary {
+       cfile (d.."rd_arhdr.c"),
+       cfile (d.."rd_bytes.c"),
+       cfile (d.."rd_int2.c"),
+       cfile (d.."rd_long.c"),
+       cfile (d.."rd_ranlib.c"),
+       cfile (d.."rd_unsig2.c"),
+       cfile (d.."rd.c"),
+       cfile (d.."wr_arhdr.c"),
+       cfile (d.."wr_bytes.c"),
+       cfile (d.."wr_int2.c"),
+       cfile (d.."wr_long.c"),
+       cfile (d.."wr_putc.c"),
+       cfile (d.."wr_ranlib.c"),
+       cfile (d.."wr.c"),
+
+       outputs = {"%U%/lib_object.a"},
+       install = {
+               pm.install(LIBDIR.."libobject.a")
+       }
+}
+--[[
+
+
+# genmakefile
+# This genmakefile doesn't have a real comment yet.
+#
+# $Source$
+# $State$
+
+push
+       addincludeq src/lib/object
+
+       
+       hostlibrary $LIBDIR/libobject.a $OBJS
+pop
+
+# Revision history
+# $Log$
+# Revision 1.1  2006-07-20 23:18:18  dtrg
+# First version in CVS.
+#
+--]]
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/print/pmfile b/modules/src/print/pmfile
new file mode 100644 (file)
index 0000000..566a838
--- /dev/null
@@ -0,0 +1,24 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/print/"
+lib_print = file (LIBDIR.."libprint.a")
+
+module_print = clibrary {
+       cfile (d.."doprnt.c"),
+       cfile (d.."fprint.c"),
+       cfile (d.."print.c"),
+       cfile (d.."sprint.c"),
+       cfile (d.."format.c"),
+
+       outputs = {"%U%/libprint.a"},
+       install = {
+               pm.install(LIBDIR.."libprint.a"),
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/read_em/pmfile b/modules/src/read_em/pmfile
new file mode 100644 (file)
index 0000000..da2975f
--- /dev/null
@@ -0,0 +1,90 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/read_em/"
+lib_read_emk = file (LIBDIR.."libread_emk.a")
+lib_read_emkV = file (LIBDIR.."libread_emkV.a")
+lib_read_emeV = file (LIBDIR.."libread_emeV.a")
+
+local C_mnem_h = simple {
+       command = {"(cd "..d.." && sh %in%) > %out%"},
+       outputs = {"%U%-%I%.h"},
+       install = pm.install(HEADERDIR.."C_mnem.h"),
+       
+       file (ROOTDIR..d.."m_C_mnem"),
+       file (ROOTDIR.."etc/em_table")
+}
+
+local C_mnem_narg_h = simple {
+       command = {"(cd "..d.." && %in%) > %out%"},
+       outputs = {"%U%-%I%.h"},
+       install = pm.install(HEADERDIR.."C_mnem_narg.h"),
+       
+       file (ROOTDIR..d.."m_C_mnem_na"),
+       file (ROOTDIR.."etc/em_table")
+}
+
+local withdynamic = cfile {
+       dynamicheaders = {C_mnem_h, C_mnem_narg_h}
+}
+
+module_read_emk = clibrary {
+       CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG",
+       cfile (d.."EM_vars.c"),
+       cfile {
+               CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCOMPACT",
+               (d.."read_em.c")
+       },
+       withdynamic (d.."mkcalls.c"),
+       
+       outputs = {"%U%/libread_emk.a"},
+       install = pm.install(LIBDIR.."libread_emk.a")
+}
+
+module_read_emkV = clibrary {
+       CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG",
+       cfile (d.."EM_vars.c"),
+       cfile {
+               CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCOMPACT -DCHECKING",
+               (d.."read_em.c")
+       },
+       withdynamic {
+               CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCHECKING",
+               (d.."mkcalls.c"),
+       },
+       
+       outputs = {"%U%/libread_emkV.a"},
+       install = pm.install(LIBDIR.."libread_emkV.a")
+}
+
+module_read_emeV = clibrary {
+       CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG",
+       cfile (d.."EM_vars.c"),
+       cfile {
+               CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCHECKING",
+               (d.."read_em.c")
+       },
+       withdynamic {
+               CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCHECKING",
+               (d.."mkcalls.c"),
+       },
+       
+       outputs = {"%U%/lib_read_emeV.a"},
+       install = pm.install(LIBDIR.."libread_emeV.a")
+}
+
+module_read_em = group {
+       module_read_emk,
+       module_read_emkV,
+       module_read_emeV,
+       
+       install = {
+               pm.install(d.."em_comp.h",     HEADERDIR.."em_comp.h"),
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/string/pmfile b/modules/src/string/pmfile
new file mode 100644 (file)
index 0000000..f33cad5
--- /dev/null
@@ -0,0 +1,37 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/string/"
+lib_string = file (LIBDIR.."libstring.a")
+
+module_string = clibrary {
+       cfile (d.."bts2str.c"),
+       cfile (d.."btscat.c"),
+       cfile (d.."btscmp.c"),
+       cfile (d.."btscpy.c"),
+       cfile (d.."btszero.c"),
+       cfile (d.."long2str.c"),
+       cfile (d.."str2bts.c"),
+       cfile (d.."str2long.c"),
+       cfile (d.."strcat.c"),
+       cfile (d.."strcmp.c"),
+       cfile (d.."strcpy.c"),
+       cfile (d.."strindex.c"),
+       cfile (d.."strlen.c"),
+       cfile (d.."strncat.c"),
+       cfile (d.."strncmp.c"),
+       cfile (d.."strncpy.c"),
+       cfile (d.."strrindex.c"),
+       cfile (d.."strzero.c"),
+       
+       outputs = {"%U%/lib_string.a"},
+       install = {
+               pm.install(LIBDIR.."libstring.a")
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/modules/src/system/pmfile b/modules/src/system/pmfile
new file mode 100644 (file)
index 0000000..33db974
--- /dev/null
@@ -0,0 +1,38 @@
+-- $Source$
+-- $State$
+
+local d = "modules/src/system/"
+lib_system = file (LIBDIR.."libsystem.a")
+
+module_system = clibrary {
+       cfile (d.."access.c"),
+       cfile (d.."break.c"),
+       cfile (d.."chmode.c"),
+       cfile (d.."close.c"),
+       cfile (d.."create.c"),
+       cfile (d.."filesize.c"),
+       cfile (d.."modtime.c"),
+       cfile (d.."lock.c"),
+       cfile (d.."open.c"),
+       cfile (d.."read.c"),
+       cfile (d.."remove.c"),
+       cfile (d.."stop.c"),
+       cfile (d.."system.c"),
+       cfile (d.."time.c"),
+       cfile (d.."unlock.c"),
+       cfile (d.."write.c"),
+       cfile (d.."seek.c"),
+       cfile (d.."rename.c"),
+       
+       outputs = {"%U%/libsystem.a"},
+       install = {
+               pm.install(LIBDIR.."libsystem.a"),
+               pm.install(d.."system.h", HEADERDIR.."system.h")
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/util/ack/pmfile b/util/ack/pmfile
new file mode 100644 (file)
index 0000000..8187c3e
--- /dev/null
@@ -0,0 +1,54 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."util/ack/"
+
+local mktable = cprogram {
+       cfile (d.."mktables.c")
+}
+
+local makeheaders = simple {
+       outputs= {"%U%/dmach.c", "%U%/intable.c"},
+       command = {
+               "cd %{return posix.dirname(self.out[1])}% && %{return self['in'][1]}% %BINDIR%lib"
+       },
+       
+       mktable
+}
+
+tool_ack = cprogram {
+       cfile (d.."list.c"),
+       cfile (d.."data.c"),
+       cfile (d.."main.c"),
+       cfile (d.."scan.c"),
+       cfile (d.."svars.c"),
+       cfile (d.."trans.c"),
+       cfile (d.."util.c"),
+       cfile (d.."rmach.c"),
+       cfile (d.."run.c"),
+       cfile (d.."grows.c"),
+       cfile (d.."files.c"),
+
+       cfile {
+               CEXTRAFLAGS = "-I"..d,
+               ith { makeheaders, i = 1 }
+       },
+       cfile {
+               CEXTRAFLAGS = "-I"..d,
+               ith { makeheaders, i = 2 }
+       },
+               
+       lib_string,
+       
+       outputs = {"%U%/ack"},
+       install = {
+               pm.install("%BINDIR%bin/ack"),
+               pm.install("%ROOTDIR%/lib/descr/fe", "%BINDIR%%PLATIND%/descr/fe"),
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/util/amisc/pmfile b/util/amisc/pmfile
new file mode 100644 (file)
index 0000000..cdaf7e6
--- /dev/null
@@ -0,0 +1,17 @@
+-- $Source$
+-- $State$
+
+local d = "util/amisc/"
+
+tool_tabgen = cprogram {
+       cfile (d.."tabgen.c"),
+       
+       outputs = {"%U%/tabgen"},
+       install = pm.install(TOOLDIR.."tabgen")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/util/arch/pmfile b/util/arch/pmfile
new file mode 100644 (file)
index 0000000..f254f39
--- /dev/null
@@ -0,0 +1,22 @@
+-- $Source$
+-- $State$
+
+local d = "util/arch/"
+
+tool_aal = cprogram {
+       CEXTRAFLAGS = "-DAAL",
+       cfile (d.."archiver.c"),
+       
+       lib_print,
+       lib_string,
+       lib_system,
+       lib_object,
+       
+       install = pm.install(BINDIR.."bin/aal")
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/util/ceg/as_parser/pmfile b/util/ceg/as_parser/pmfile
new file mode 100644 (file)
index 0000000..df78b98
--- /dev/null
@@ -0,0 +1,56 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."util/ceg/as_parser/"
+
+local lpars = LLgen {
+       file (d.."pars.g")
+}
+
+local cfile_with_headers = cfile {
+       class = "cfile_with_headers",
+       dynamicheaders = {
+               file (d),
+               lpars
+       }
+}
+       
+tool_ceg_as_parser = cprogram {
+       CEXTRAFLAGS = "-DFLEX",
+       CLIBRARIES = "-lfl",
+       
+       cfile_with_headers (d.."conversion.c"),
+       cfile_with_headers (d.."help.c"),
+       
+       cfile_with_headers {
+               flex {
+                       file (d.."table.l")
+               }
+       },
+       
+       foreach {
+               rule = cfile_with_headers,
+               ith { lpars, from=2 }
+       },
+       
+       lib_alloc,
+       lib_print,
+       lib_string,
+       lib_system,
+       
+       outputs = {"%U%/as_parser"},
+       install = pm.install(BINDIR.."%PLATDEP%/ceg/as_parser/as_parser"),
+}
+
+tool_ceg_as_parser_eval = cprogram {
+       cfile (d.."eval/eval.c"),
+       
+       outputs = {"%U%/eval"},
+       install = pm.install(BINDIR.."%PLATDEP%/ceg/as_parser/eval"),
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/util/ceg/assemble/pmfile b/util/ceg/assemble/pmfile
new file mode 100644 (file)
index 0000000..05671a7
--- /dev/null
@@ -0,0 +1,20 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."util/ceg/assemble/"
+
+tool_ceg_assemble = group {
+       install = {
+               pm.install(d.."as_assemble/assemble.c",  BINDIR..PLATDEP.."/ceg/assemble/as_assemble/assemble.c"),
+               pm.install(d.."as_assemble/block_as.c",  BINDIR..PLATDEP.."/ceg/assemble/as_assemble/block_as.c"),
+               pm.install(d.."obj_assemble/assemble.c", BINDIR..PLATDEP.."/ceg/assemble/obj_assemble/assemble.c"),
+               pm.install(d.."obj_assemble/block_as.c", BINDIR..PLATDEP.."/ceg/assemble/obj_assemble/block_as.c"),
+               pm.install(d.."obj_assemble/const.h",    BINDIR..PLATDEP.."/ceg/assemble/obj_assemble/const.h"),
+       }
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/util/ceg/ce_back/pmfile b/util/ceg/ce_back/pmfile
new file mode 100644 (file)
index 0000000..5710282
--- /dev/null
@@ -0,0 +1,89 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."util/ceg/ce_back/"
+
+local function installmany(srcroot, destroot, list)
+       local o = {}
+       
+       for _, i in ipairs(list) do
+               table.insert(o, pm.install(srcroot..i, destroot..i))
+       end
+       
+       return o
+end
+
+tool_ceg_assemble = group {
+       install = installmany(d, BINDIR.."%PLATDEP%/ceg/ce_back/",
+       {       
+               "as_back/back.h",
+               "as_back/bottom.c",
+               "as_back/bss.c",
+               "as_back/con1.c",
+               "as_back/con2.c",
+               "as_back/con4.c",
+               "as_back/do_close.c",
+               "as_back/do_open.c",
+               "as_back/end_back.c",
+               "as_back/gen1.c",
+               "as_back/gen2.c",
+               "as_back/gen4.c",
+               "as_back/header.h",
+               "as_back/init_back.c",
+               "as_back/reloc1.c",
+               "as_back/reloc2.c",
+               "as_back/reloc4.c",
+               "as_back/rom1.c",
+               "as_back/rom2.c",
+               "as_back/rom4.c",
+               "as_back/set_global.c",
+               "as_back/set_local.c",
+               "as_back/switchseg.c",
+               "as_back/symboldef.c",
+               "as_back/text1.c",
+               "as_back/text2.c",
+               "as_back/text4.c",
+               "as_back/dbsym.c",
+
+               "obj_back/back.h",
+               "obj_back/con2.c",
+               "obj_back/con4.c",
+               "obj_back/data.c",
+               "obj_back/data.h",
+               "obj_back/do_close.c",
+               "obj_back/do_open.c",
+               "obj_back/end_back.c",
+               "obj_back/extnd.c",
+               "obj_back/gen1.c",
+               "obj_back/gen2.c",
+               "obj_back/gen4.c",
+               "obj_back/hash.h",
+               "obj_back/header.h",
+               "obj_back/init_back.c",
+               "obj_back/label.c",
+               "obj_back/memory.c",
+               "obj_back/misc.c",
+               "obj_back/output.c",
+               "obj_back/reloc1.c",
+               "obj_back/reloc2.c",
+               "obj_back/reloc4.c",
+               "obj_back/relocation.c",
+               "obj_back/rom2.c",
+               "obj_back/rom4.c",
+               "obj_back/set_global.c",
+               "obj_back/set_local.c",
+               "obj_back/switchseg.c",
+               "obj_back/symboldef.c",
+               "obj_back/symtable.c",
+               "obj_back/text2.c",
+               "obj_back/text4.c",
+               "obj_back/common.c",
+               "obj_back/dbsym.c",
+       })
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:19  dtrg
+-- First version in CVS.
+--
diff --git a/util/ceg/pmfile b/util/ceg/pmfile
new file mode 100644 (file)
index 0000000..8de3fbc
--- /dev/null
@@ -0,0 +1,21 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."util/ceg/"
+
+include (d.."as_parser/pmfile")
+include (d.."assemble/pmfile")
+include (d.."ce_back/pmfile")
+
+tool_ceg = group {
+       tool_ceg_as_parser,
+       tool_ceg_as_parser_eval,
+       tool_ceg_assemble,
+       tool_ceg_ce_back,
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:18:18  dtrg
+-- First version in CVS.
+--
diff --git a/util/cgg/pmfile b/util/cgg/pmfile
new file mode 100644 (file)
index 0000000..f56fe8c
--- /dev/null
@@ -0,0 +1,48 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."util/cgg/"
+
+local yacc_bootgram = yacc {
+                       file (d.."bootgram.y")
+               }
+
+tool_cgg = cprogram {
+       cfile (d.."main.c"),
+       
+       cfile {
+               CEXTRAFLAGS = "-I"..d,
+               yacc_bootgram,
+       },
+       
+       cfile {
+               CEXTRAFLAGS = "-I"..d,
+               flex {
+                       file (d.."bootlex.l")
+               },
+               
+               dynamicheaders = yacc_bootgram
+       },
+       
+       CLIBRARIES = {"-lfl"},
+       lib_em_data,
+       lib_assert,
+       lib_system,
+       
+       install = pm.install(TOOLDIR.."cgg")
+}
+
+cgg = simple {
+       class = "cgg",
+       
+       outputs = {"%U%/tables.c", "%U%/tables.h"},
+       command = {
+               "cd %out[1]:dirname% && (%BINDIR%bin/cpp -P -I%CGGINCLUDEDIR% %in% | %TOOLDIR%cgg)",
+       },
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:21:17  dtrg
+-- First version in CVS.
+--
diff --git a/util/cmisc/pmfile b/util/cmisc/pmfile
new file mode 100644 (file)
index 0000000..b677340
--- /dev/null
@@ -0,0 +1,25 @@
+-- $Source$
+-- $State$
+
+local d = "util/cmisc/"
+
+tool_tabgen = cprogram {
+       cfile (d.."tabgen.c"),
+       
+       outputs = {"%U%/tabgen"},
+       install = pm.install(TOOLDIR.."tabgen")
+}
+
+tabgen = simple {
+       class = "tabgen",
+       outputs = {"%U%-char.c"},
+       command = {
+               "%TOOLDIR%tabgen -f%in[1]% > %out[1]%"
+       },
+}
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:21:17  dtrg
+-- First version in CVS.
+--
diff --git a/util/cpp/pmfile b/util/cpp/pmfile
new file mode 100644 (file)
index 0000000..0e3c2e2
--- /dev/null
@@ -0,0 +1,184 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."util/cpp/"
+
+local extract_parameters = simple {
+       outputs = {
+               "%U%/pathlength.h",
+               "%U%/errout.h",
+               "%U%/idfsize.h",
+               "%U%/numsize.h",
+               "%U%/nparams.h",
+               "%U%/ifdepth.h",
+               "%U%/lapbuf.h",
+               "%U%/strsize.h",
+               "%U%/botch_free.h",
+               "%U%/debug.h",
+               "%U%/parbufsize.h",
+               "%U%/textsize.h",
+               "%U%/inputtype.h",
+               "%U%/obufsize.h",
+               "%U%/dobits.h",
+               "%U%/line_prefix.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.."expression.g")
+}
+
+
+local cfile_with_headers = cfile {
+       class = "cfile_with_headers",
+       dynamicheaders = {
+               file (d),
+               extract_parameters,
+               lpars
+       }
+}
+       
+tool_cpp = cprogram {
+       cfile_with_headers (d.."LLlex.c"),
+       cfile_with_headers (d.."LLmessage.c"),
+       cfile_with_headers (d.."ch7bin.c"),
+       cfile_with_headers (d.."ch7mon.c"),
+       cfile_with_headers (d.."domacro.c"),
+       cfile_with_headers (d.."error.c"),
+       cfile_with_headers (d.."idf.c"),
+       cfile_with_headers (d.."init.c"),
+       cfile_with_headers (d.."input.c"),
+       cfile_with_headers (d.."main.c"),
+       cfile_with_headers (d.."options.c"),
+       cfile_with_headers (d.."preprocess.c"), 
+       cfile_with_headers (d.."replace.c"),
+       cfile_with_headers (d.."scan.c"),
+       cfile_with_headers (d.."skip.c"),
+       cfile_with_headers (d.."tokenname.c"),
+       cfile_with_headers (d.."next.c"),
+       cfile_with_headers (d.."expr.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")
+       },
+       
+       lib_assert,
+       lib_print,
+       lib_alloc,
+       lib_system,
+       lib_string,
+       
+       outputs = {"%U%/cpp"},
+       install = pm.install(BINDIR.."bin/cpp")
+}
+
+--[[
+# genmakefile
+# This genmakefile doesn't have a real comment yet.
+#
+# $Source$
+# $State$
+
+# --- cpp -------------------------------------------------------------------
+
+push
+       dir=src/tools/cpp
+       
+       addinclude $SRCDIR/$dir
+       addinclude $OBJDIR/$dir
+
+
+       x="$SRCS"
+       hostcdyn $dir/char.c
+       SRCS="$x"
+       tabgen $SRCDIR/$dir/char.tab $OBJDIR/$dir/char.c
+
+       llgen "" $OBJDIR/$dir \
+                       $OBJDIR/$dir/tokenfile.g \
+                       $SRCDIR/$dir/expression.g
+       tokenfile $dir
+       tokcase $dir
+
+       hostprogram $DESTDIR/bin/cpp $OBJS \
+               $DESTDIR/lib/libassert.a \
+               $DESTDIR/lib/libprint.a \
+               $DESTDIR/lib/liballoc.a \
+               $DESTDIR/lib/libsystem.a \
+               $DESTDIR/lib/libastring.a
+
+       addcleanable $OBJDIR/$dir/errout.h
+       addcleanable $OBJDIR/$dir/idfsize.h
+       addcleanable $OBJDIR/$dir/ifdepth.h
+       addcleanable $OBJDIR/$dir/lapbuf.h
+       addcleanable $OBJDIR/$dir/nparams.h
+       addcleanable $OBJDIR/$dir/numsize.h
+       addcleanable $OBJDIR/$dir/obufsize.h
+       addcleanable $OBJDIR/$dir/parbufsize.h
+       addcleanable $OBJDIR/$dir/pathlength.h
+       addcleanable $OBJDIR/$dir/strsize.h
+       addcleanable $OBJDIR/$dir/textsize.h
+       addcleanable $OBJDIR/$dir/botch_free.h
+       addcleanable $OBJDIR/$dir/debug.h
+       addcleanable $OBJDIR/$dir/inputtype.h
+       addcleanable $OBJDIR/$dir/dobits.h
+       addcleanable $OBJDIR/$dir/line_prefix.h
+cat <<EOF
+$SRCS: $OBJDIR/$dir/.hfiles
+$SRCDIR/$dir/LLlex.c: $OBJDIR/$dir/Lpars.c
+
+$OBJDIR/$dir/.hfiles: \
+               $SRCDIR/$dir/Parameters \
+               $OBJDIR/$dir/char.c
+       @echo MAKE.HFILES \$<
+       @mkdir -p \$(dir \$@)
+       @(cd \$(dir \$@) && $SRCDIR/$dir/make.hfiles \$<) > /dev/null
+       @touch \$@
+
+EOF
+pop
+
+# Revision history
+# $Log$
+# Revision 1.1  2006-07-20 23:24:28  dtrg
+# First version in CVS.
+#
+--]]
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:24:28  dtrg
+-- First version in CVS.
+--
diff --git a/util/data/pmfile b/util/data/pmfile
new file mode 100644 (file)
index 0000000..9db7f1a
--- /dev/null
@@ -0,0 +1,53 @@
+-- $Source$
+-- $State$
+
+local d = "util/data/"
+
+local datafiles = simple {
+       outputs = {
+               "%U%/em_spec.h",
+               "%U%/em_pseu.h",
+               "%U%/em_mnem.h",
+               "%U%/em_flag.c",
+               "%U%/em_pseu.c",
+               "%U%/em_mnem.c"
+       },
+
+       command = {
+               "cd %ROOTDIR%etc && ./new_table %out[1]:dirname% %out[1]:dirname%"
+       },
+       
+       install = {
+               pm.install("%U%/em_spec.h", "%HEADERDIR%em_spec.h"),
+               pm.install("%U%/em_pseu.h", "%HEADERDIR%em_pseu.h"),
+               pm.install("%U%/em_mnem.h", "%HEADERDIR%em_mnem.h")
+       },
+               
+       file "%ROOTDIR%etc/new_table",
+}
+
+local cfile_with_headers = cfile {
+       class = "cfile_with_headers",
+       dynamicheaders = {
+               datafiles,
+       }
+}
+
+module_em_data = clibrary {
+       cfile_with_headers (d.."em_ptyp.c"),
+       foreach {
+               rule = cfile_with_headers,
+               ith { datafiles, from=4 }
+       },
+       
+       outputs = {"%U%/libem_data.a"},
+       install = pm.install("%LIBDIR%libem_data.a")
+}
+
+lib_em_data = file "%LIBDIR%libem_data.a"
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:24:28  dtrg
+-- First version in CVS.
+--
diff --git a/util/misc/pmfile b/util/misc/pmfile
new file mode 100644 (file)
index 0000000..02ba198
--- /dev/null
@@ -0,0 +1,47 @@
+-- $Source$
+-- $State$
+
+local d = ROOTDIR.."util/misc/"
+
+tool_em_decode = cprogram {
+       cfile (d.."convert.c"),
+
+       lib_read_emkV,
+       lib_eme,
+       lib_em_data,
+       lib_alloc,
+       lib_print,
+       lib_string,
+       lib_system,
+       
+       outputs = {"%U%/em_decode"},
+       install = {
+               -- FIXME lib.bin in next line needs removing --- pm bug?
+               pm.install("%BINDIR%lib.bin/em_decode"),
+               pm.install(d.."em_decode.6", "%BINDIR%man/man6/em_decode.6"),
+       }
+}
+       
+tool_em_encode = cprogram {
+       cfile (d.."convert.c"),
+
+       lib_read_emeV,
+       lib_emk,
+       lib_em_data,
+       lib_alloc,
+       lib_print,
+       lib_string,
+       lib_system,
+       
+       outputs = {"%U%/em_encode"},
+       install = {
+               -- FIXME lib.bin in next line needs removing --- pm bug?
+               pm.install("%BINDIR%lib.bin/em_encode"),
+       }
+}
+       
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:24:28  dtrg
+-- First version in CVS.
+--
diff --git a/util/ncgg/pmfile b/util/ncgg/pmfile
new file mode 100644 (file)
index 0000000..e576cef
--- /dev/null
@@ -0,0 +1,81 @@
+-- $Source$
+-- $State$
+
+local d = "util/ncgg/"
+
+local ncgg_yacc = yacc {
+       file (d.."cgg.y")
+}
+
+tool_ncgg = cprogram {
+       cfile (d.."subr.c"),
+       cfile (d.."main.c"),
+       cfile (d.."coerc.c"),
+       cfile (d.."error.c"),
+       cfile (d.."emlookup.c"),
+       cfile (d.."expr.c"),
+       cfile (d.."instruct.c"),
+       cfile (d.."iocc.c"),
+       cfile (d.."lookup.c"),
+       cfile (d.."output.c"),
+       cfile (d.."set.c"),
+       cfile (d.."strlookup.c"),
+       cfile (d.."var.c"),
+       cfile (d.."hall.c"),
+       
+       cfile {
+               CEXTRAFLAGS = "-I"..d,
+               
+               ncgg_yacc,
+               dynamicheaders = flex {
+                       file (d.."scan.l")
+               }
+       },
+       
+       cfile {
+               CEXTRAFLAGS = "-I"..d,
+               simple {
+                       outputs = {"%U%/enterkeyw.c"},
+                       
+                       command = {
+                               "cp %{return posix.dirname(self['in'][3])}%/y.tab.h %{return posix.dirname(self.out[1])}%",
+                               "cd %{return posix.dirname(self.out[1])}% && "..ROOTDIR..d.."cvtkeywords "..ROOTDIR..d.."keywords",
+                       },
+       
+                       file (d.."cvtkeywords"),
+                       file (d.."keywords"),
+                       ncgg_yacc
+               },
+               
+               dynamicheaders = ncgg_yacc
+       },
+       
+       lib_em_data,
+       
+       outputs = {"%U%-ncgg"},
+       install = pm.install(TOOLDIR.."ncgg")
+}
+
+ncgg = simple {
+       class = "ncgg",
+       
+       outputs = {"%U%/tables.c", "%U%/tables.h"},
+       command = {
+               "cd %out[1]:dirname% && (%BINDIR%bin/cpp -P -I%NCGGINCLUDEDIR% %in% | %TOOLDIR%ncgg)",
+               "mv %out[1]:dirname%/tables.H %out[2]%"
+       },
+}
+
+--[[
+       @echo HOSTNCG $SRCDIR/src/arch/$table/ncg/table
+       @mkdir -p \$(dir \$@)
+       @(cd $OBJDIR/src/arch/$1/ncg && $DESTDIR/bin/cpp -P -I$SRCDIR/src/arch/$1/ncg $SRCDIR/src/arch/$table/ncg/table | \
+               $DESTDIR/bin/ncgg) > /dev/null
+       @(cd $OBJDIR/src/arch/$1/ncg && mv tables.H tables.h)
+--]]
+
+-- Revision history
+-- $Log$
+-- Revision 1.1  2006-07-20 23:24:28  dtrg
+-- First version in CVS.
+--