diff --git a/first/c.pm b/first/c.pm new file mode 100644 index 000000000..eeb313882 --- /dev/null +++ b/first/c.pm @@ -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 index 000000000..129f0325e --- /dev/null +++ b/first/llgen.pm @@ -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 index 000000000..174bcf073 --- /dev/null +++ b/first/yacc.pm @@ -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 index 000000000..a7932df2a --- /dev/null +++ b/lang/cem/cemcom.ansi/pmfile @@ -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 index 000000000..11e674182 --- /dev/null +++ b/lang/cem/cemcom/pmfile @@ -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 index 000000000..b5c904c4b --- /dev/null +++ b/mach/6500/dl/pmfile @@ -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 index 000000000..56729e45d --- /dev/null +++ b/mach/6500/libem/pmfile @@ -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 index 000000000..9de1a9ca3 --- /dev/null +++ b/mach/6500/pmfile @@ -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 index 000000000..516ab67de --- /dev/null +++ b/mach/6800/pmfile @@ -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 index 000000000..926369a08 --- /dev/null +++ b/mach/6805/pmfile @@ -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 index 000000000..3fc289783 --- /dev/null +++ b/mach/6809/pmfile @@ -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 index 000000000..8ca8a9a4a --- /dev/null +++ b/mach/arm/cv/pmfile @@ -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 index 000000000..bb32e0905 --- /dev/null +++ b/mach/arm/pmfile @@ -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 index 000000000..c68a47b79 --- /dev/null +++ b/mach/i386/cv/pmfile @@ -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 index 000000000..a31ad2985 --- /dev/null +++ b/mach/i386/pmfile @@ -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 index 000000000..1fdc34539 --- /dev/null +++ b/mach/i80/pmfile @@ -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 index 000000000..f3f769ce9 --- /dev/null +++ b/mach/i86/pmfile @@ -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 index 000000000..e4f20213d --- /dev/null +++ b/mach/m68020/pmfile @@ -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 index 000000000..eb2a88ebe --- /dev/null +++ b/mach/m68k2/pmfile @@ -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 index 000000000..faf78e266 --- /dev/null +++ b/mach/m68k4/pmfile @@ -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 index 000000000..6696e302d --- /dev/null +++ b/mach/ns/pmfile @@ -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 index 000000000..741085903 --- /dev/null +++ b/mach/pdp/pmfile @@ -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 index 000000000..f6deeaf25 --- /dev/null +++ b/mach/proto/as/pmfile @@ -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 index 000000000..43375e25f --- /dev/null +++ b/mach/proto/cg/pmfile @@ -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 < /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 index 000000000..73265dbdb --- /dev/null +++ b/mach/proto/ncg/pmfile @@ -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 index 000000000..ba5ef9624 --- /dev/null +++ b/mach/proto/pmfile @@ -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 index 000000000..d9d41c9cd --- /dev/null +++ b/mach/s2650/pmfile @@ -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 index 000000000..78227c75a --- /dev/null +++ b/mach/vax4/pmfile @@ -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 index 000000000..41d92d389 --- /dev/null +++ b/mach/z80/pmfile @@ -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 index 000000000..a596356c2 --- /dev/null +++ b/mach/z8000/pmfile @@ -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 index 000000000..5200f3097 --- /dev/null +++ b/modules/src/alloc/pmfile @@ -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 index 000000000..72d72b5bb --- /dev/null +++ b/modules/src/assert/pmfile @@ -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 index 000000000..85db4f963 --- /dev/null +++ b/modules/src/em_code/pmfile @@ -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 index 000000000..f70ff2081 --- /dev/null +++ b/modules/src/em_mes/pmfile @@ -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 index 000000000..683cbffa4 --- /dev/null +++ b/modules/src/flt_arith/pmfile @@ -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 index 000000000..80acffcdb --- /dev/null +++ b/modules/src/idf/pmfile @@ -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 index 000000000..71be8dbb9 --- /dev/null +++ b/modules/src/input/pmfile @@ -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 index 000000000..2806f50b3 --- /dev/null +++ b/modules/src/object/pmfile @@ -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 index 000000000..566a838d4 --- /dev/null +++ b/modules/src/print/pmfile @@ -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 index 000000000..da2975f3a --- /dev/null +++ b/modules/src/read_em/pmfile @@ -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 index 000000000..f33cad581 --- /dev/null +++ b/modules/src/string/pmfile @@ -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 index 000000000..33db974c7 --- /dev/null +++ b/modules/src/system/pmfile @@ -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 index 000000000..8187c3e6e --- /dev/null +++ b/util/ack/pmfile @@ -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 index 000000000..cdaf7e637 --- /dev/null +++ b/util/amisc/pmfile @@ -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 index 000000000..f254f3967 --- /dev/null +++ b/util/arch/pmfile @@ -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 index 000000000..df78b987b --- /dev/null +++ b/util/ceg/as_parser/pmfile @@ -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 index 000000000..05671a71f --- /dev/null +++ b/util/ceg/assemble/pmfile @@ -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 index 000000000..5710282c8 --- /dev/null +++ b/util/ceg/ce_back/pmfile @@ -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 index 000000000..8de3fbc6c --- /dev/null +++ b/util/ceg/pmfile @@ -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 index 000000000..f56fe8cbe --- /dev/null +++ b/util/cgg/pmfile @@ -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 index 000000000..b67734077 --- /dev/null +++ b/util/cmisc/pmfile @@ -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 index 000000000..0e3c2e235 --- /dev/null +++ b/util/cpp/pmfile @@ -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 < /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 index 000000000..9db7f1ae3 --- /dev/null +++ b/util/data/pmfile @@ -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 index 000000000..02ba198db --- /dev/null +++ b/util/misc/pmfile @@ -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 index 000000000..e576cef06 --- /dev/null +++ b/util/ncgg/pmfile @@ -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. +--