diff --git a/first/ack.pm b/first/ack.pm index 9cfe4ac86..65ace9ebd 100644 --- a/first/ack.pm +++ b/first/ack.pm @@ -11,7 +11,7 @@ ackfile = simple_with_clike_dependencies { class = "ackfile", CINCLUDES = {REDIRECT, "ACKINCLUDES"}, command = { - "%BINDIR%bin/ack %ACKBUILDFLAGS% %ACKINCLUDES% %ACKDEFINES% -c -o %out% %in%" + "%BINDIR%bin/ack %ACKBUILDFLAGS% %ACKINCLUDES:cincludes% %ACKDEFINES:cdefines% -c -o %out% %in%" }, outputs = {"%U%-%I%.o"}, } diff --git a/first/c.pm b/first/c.pm index 59c0bb0b8..95fa52dd8 100644 --- a/first/c.pm +++ b/first/c.pm @@ -1,3 +1,7 @@ +-- $Id$ +-- $HeadURL: https://svn.sourceforge.net/svnroot/primemover/pm/lib/c.pm $ +-- $LastChangedDate: 2006-10-12 20:17:52Z $ + -- pm includefile to compile *host* C programs. -- Standard Lua boilerplate. @@ -13,9 +17,13 @@ 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%" -AR = "%RM% %out% && ar cr %out% %in% && ranlib %out%" +CXXCOMPILER = "g++" +CC = "%CCOMPILER% %CBUILDFLAGS% %CDYNINCLUDES:cincludes% %CINCLUDES:cincludes% %CDEFINES:cdefines% %CEXTRAFLAGS% -c -o %out% %in%" +CXX = "%CXXCOMPILER% %CBUILDFLAGS% %CDYNINCLUDES:cincludes% %CINCLUDES:cincludes% %CDEFINES:cdefines% %CEXTRAFLAGS% -c -o %out% %in%" +CPROGRAM = "%CCOMPILER% %CBUILDFLAGS% %CLINKFLAGS% %CEXTRAFLAGS% -o %out% %in% %CLIBRARIES:clibraries%" +CXXPROGRAM = "%CXXCOMPILER% %CBUILDFLAGS% %CLINKFLAGS% %CEXTRAFLAGS% -o %out% %in% %CLIBRARIES:clibraries%" + +CLIBRARY = "rm -f %out% && ar cr %out% %in% && ranlib %out%" CBUILDFLAGS = {"-g"} CINCLUDES = EMPTY @@ -25,6 +33,44 @@ CLINKFLAGS = EMPTY CDYNINCLUDES = EMPTY CLIBRARIES = EMPTY +--- Custom string modifiers ------------------------------------------------- + +local function prepend(rule, arg, prefix) + if (arg == EMPTY) then + return EMPTY + end + + local t = {} + for i, j in ipairs(arg) do + t[i] = prefix..j + end + return t +end + +function pm.stringmodifier.cincludes(rule, arg) + return prepend(rule, arg, "-I") +end + +function pm.stringmodifier.cdefines(rule, arg) + return prepend(rule, arg, "-D") +end + +function pm.stringmodifier.clibraries(rule, arg) + if (arg == EMPTY) then + return EMPTY + end + + local t = {} + for i, j in ipairs(arg) do + if string_find(j, "%.a$") then + t[i] = j + else + t[i] = "-l"..j + end + end + return t +end + --- Manage C file dependencies ---------------------------------------------- local dependency_cache = {} @@ -41,7 +87,7 @@ local function calculate_dependencies(filename, includes) local calcdeps = 0 calcdeps = function(filename, file) - file = file or io.open(filename) + file = file or io_open(filename) if not file then return end @@ -58,7 +104,7 @@ local function calculate_dependencies(filename, includes) if f then for _, path in ipairs(localincludes) do local subfilename = path.."/"..f - local subfile = io.open(subfilename) + local subfile = io_open(subfilename) if subfile then if not deps[subfilename] then deps[subfilename] = true @@ -116,41 +162,44 @@ simple_with_clike_dependencies = simple { end, __dependencies = function(self, inputs, outputs) - local cincludes = self.CINCLUDES + local cincludes = self:__index("CINCLUDES") if (type(cincludes) == "string") then cincludes = {cincludes} end local includes = {} for _, i in ipairs(cincludes) do - local _, _, p = string_find(i, "^-I[ \t]*(.+)$") - if p then - table_insert(includes, p) - end + table_insert(includes, self:__expand(i)) end - local depends = calculate_dependencies(inputs[1], includes) + local input = self:__expand(inputs[1]) + local depends = calculate_dependencies(input, includes) if not depends then self:__error("could not determine the dependencies for ", - pm.rendertable(inputs)) + pm.rendertable({input})) end if pm.verbose then - pm.message('"', inputs[1], '" appears to depend on ', + pm.message('"', input, '" appears to depend on ', pm.rendertable(depends)) end return depends end, __buildadditionalchildren = function(self) - self.CDYNINCLUDES = "" + 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], "/[^/]*$", "")..'"' + table_insert(self.CDYNINCLUDES, (string_gsub(o[1], "/[^/]*$", ""))) end end end + -- If no paths on the list, replace the list with EMPTY so it doesn't + -- expand to anything. + if (table_getn(self.CDYNINCLUDES) == 0) then + self.CDYNINCLUDES = EMPTY + end end } @@ -162,16 +211,28 @@ cfile = simple_with_clike_dependencies { outputs = {"%U%-%I%.o"}, } +cxxfile = simple_with_clike_dependencies { + class = "cxxfile", + command = {"%CXX%"}, + outputs = {"%U%-%I%.o"}, +} + cprogram = simple { class = "cprogram", command = {"%CPROGRAM%"}, outputs = {"%U%-%I%"}, } +cxxprogram = simple { + class = "cxxprogram", + command = {"%CXXPROGRAM%"}, + outputs = {"%U%-%I%"}, +} + clibrary = simple { class = "clibrary", command = { - "%AR%" + "%CLIBRARY%" }, outputs = {"%U%-%I%.a"}, } diff --git a/first/yacc.pm b/first/yacc.pm index 174bcf073..92bbe39dc 100644 --- a/first/yacc.pm +++ b/first/yacc.pm @@ -3,8 +3,8 @@ yacc = simple { 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%" + "yacc -t -b %out[1]:dirname%/y -d %in%", + "mv %out[1]:dirname%/y.tab.c %out[1]%" } } diff --git a/lang/basic/lib/pmfile b/lang/basic/lib/pmfile index 53fd6ffdc..fa27ecfe5 100644 --- a/lang/basic/lib/pmfile +++ b/lang/basic/lib/pmfile @@ -4,7 +4,7 @@ local d = ROOTDIR.."lang/basic/lib/" lang_basic_runtime = acklibrary { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I%ROOTDIR%include/_tail_cc"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"}, ackfile (d.."fif.e"), ackfile (d.."fef.e"), diff --git a/lang/cem/cemcom.ansi/pmfile b/lang/cem/cemcom.ansi/pmfile index ed393a596..c22795135 100644 --- a/lang/cem/cemcom.ansi/pmfile +++ b/lang/cem/cemcom.ansi/pmfile @@ -156,7 +156,7 @@ lang_cem_ansi_compiler = cprogram { }, cfile_with_headers { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, tabgen (d.."char.tab") }, diff --git a/lang/cem/cemcom/pmfile b/lang/cem/cemcom/pmfile index de97377d5..e415c38ed 100644 --- a/lang/cem/cemcom/pmfile +++ b/lang/cem/cemcom/pmfile @@ -156,7 +156,7 @@ lang_cem_compiler = cprogram { }, cfile_with_headers { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, tabgen (d.."char.tab") }, diff --git a/lang/cem/cpp.ansi/pmfile b/lang/cem/cpp.ansi/pmfile index b21c677a7..2fb98fa8a 100644 --- a/lang/cem/cpp.ansi/pmfile +++ b/lang/cem/cpp.ansi/pmfile @@ -99,7 +99,7 @@ tool_cpp_ansi = cprogram { }, cfile_with_headers { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, tabgen (d.."char.tab") }, diff --git a/lang/cem/libcc.ansi/pmfile b/lang/cem/libcc.ansi/pmfile index 4d6f140ac..3f3e3bd74 100644 --- a/lang/cem/libcc.ansi/pmfile +++ b/lang/cem/libcc.ansi/pmfile @@ -4,14 +4,14 @@ local d = ROOTDIR.."lang/cem/libcc.ansi/" local crt = ackfile { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h"}, file (d.."head_ac.e"), install = pm.install("%BINDIR%%PLATIND%/%ARCH%/head_ac") } local libc = acklibrary { ACKBUILDFLAGS = {PARENT, "-ansi"}, - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I"..d.."headers", "-I%ROOTDIR%include/_tail_cc"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", d.."headers", "%ROOTDIR%include/_tail_cc"}, outputs = {"%U%/tail_ac.a"}, -- assert @@ -99,7 +99,7 @@ local libc = acklibrary { ackfile (d.."misc/fdopen.c"), ackfile (d.."misc/closedir.c"), group { - ACKINCLUDES = {PARENT, "-DUFS"}, + ACKDEFINES = {PARENT, "UFS"}, ackfile (d.."misc/getdents.c") }, ackfile (d.."misc/opendir.c"), diff --git a/lang/cem/libcc/gen/pmfile b/lang/cem/libcc/gen/pmfile index f6069db9b..4a6995f8c 100644 --- a/lang/cem/libcc/gen/pmfile +++ b/lang/cem/libcc/gen/pmfile @@ -4,7 +4,7 @@ local d = ROOTDIR.."lang/cem/libcc/gen/" lang_cem_gen_runtime = acklibrary { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I%ROOTDIR%include/_tail_cc"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"}, ackfile (d.."abs.c"), ackfile (d.."atof.c"), diff --git a/lang/cem/libcc/math/pmfile b/lang/cem/libcc/math/pmfile index 3b89cc694..90c5da148 100644 --- a/lang/cem/libcc/math/pmfile +++ b/lang/cem/libcc/math/pmfile @@ -4,7 +4,7 @@ local d = ROOTDIR.."lang/cem/libcc/math/" lang_cem_math_runtime = acklibrary { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I%ROOTDIR%include/_tail_cc"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"}, ackfile (d.."asin.c"), ackfile (d.."atan2.c"), diff --git a/lang/cem/libcc/mon/pmfile b/lang/cem/libcc/mon/pmfile index 819e62b72..f7c6c6017 100644 --- a/lang/cem/libcc/mon/pmfile +++ b/lang/cem/libcc/mon/pmfile @@ -4,8 +4,8 @@ local d = ROOTDIR.."lang/cem/libcc/mon/" lang_cem_mon_runtime = acklibrary { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I%ROOTDIR%include/_tail_cc", - "-I%ROOTDIR%include/_tail_mon"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc", + "%ROOTDIR%include/_tail_mon"}, ackfile (d.."exit.c"), ackfile (d.."gtty.c"), diff --git a/lang/cem/libcc/stdio/pmfile b/lang/cem/libcc/stdio/pmfile index 9deb5b88d..21cb247c6 100644 --- a/lang/cem/libcc/stdio/pmfile +++ b/lang/cem/libcc/stdio/pmfile @@ -4,7 +4,7 @@ local d = ROOTDIR.."lang/cem/libcc/stdio/" lang_cem_stdio_runtime = acklibrary { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I%ROOTDIR%include/_tail_cc"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"}, ackfile (d.."vsprintf.c"), ackfile (d.."vfprintf.c"), diff --git a/lang/m2/comp/pmfile b/lang/m2/comp/pmfile index 8f8b6d707..0e245b9cc 100644 --- a/lang/m2/comp/pmfile +++ b/lang/m2/comp/pmfile @@ -69,7 +69,7 @@ local cfile_with_headers = cfile { } lang_m2_compiler = cprogram { - CDEFINES = {PARENT, "-DSTATIC=static"}, + CDEFINES = {PARENT, "STATIC=static"}, cfile_with_headers (d.."LLlex.c"), cfile_with_headers (d.."LLmessage.c"), @@ -112,7 +112,7 @@ lang_m2_compiler = cprogram { }, cfile_with_headers { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, tabgen (d.."char.tab") }, @@ -167,7 +167,10 @@ lang_m2_compiler = cprogram { -- Revision history -- $Log$ --- Revision 1.2 2006-07-26 18:19:15 dtrg +-- Revision 1.3 2006-10-15 00:28:11 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.2 2006/07/26 18:19:15 dtrg -- Tweaked the CVS settings. -- -- Revision 1.1 2006/07/26 17:12:19 dtrg diff --git a/lang/m2/libm2/pmfile b/lang/m2/libm2/pmfile index 31ba08c73..71a62c546 100644 --- a/lang/m2/libm2/pmfile +++ b/lang/m2/libm2/pmfile @@ -4,7 +4,7 @@ local d = ROOTDIR.."lang/m2/libm2/" lang_m2_runtime = acklibrary { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I%ROOTDIR%include/_tail_cc"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"}, ackfile (d.."Termcap.mod"), ackfile (d.."CSP.mod"), diff --git a/lang/occam/comp/pmfile b/lang/occam/comp/pmfile index e579f0fcb..3a862d87d 100644 --- a/lang/occam/comp/pmfile +++ b/lang/occam/comp/pmfile @@ -16,7 +16,7 @@ local cfile_with_headers = cfile { } lang_occam_compiler = cprogram { - CLIBRARIES = {PARENT, "-lfl"}, + CLIBRARIES = {PARENT, "fl"}, cfile_with_headers (d.."builtin.c"), cfile_with_headers (d.."code.c"), @@ -54,6 +54,9 @@ lang_occam_compiler = cprogram { -- Revision history -- $Log$ --- Revision 1.1 2006-07-26 18:23:32 dtrg +-- Revision 1.2 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.1 2006/07/26 18:23:32 dtrg -- Added support for the Occam compiler. -- \ No newline at end of file diff --git a/lang/occam/lib/pmfile b/lang/occam/lib/pmfile index a8bdfe0f9..cef68e11a 100644 --- a/lang/occam/lib/pmfile +++ b/lang/occam/lib/pmfile @@ -4,7 +4,7 @@ local d = ROOTDIR.."lang/occam/lib/" lang_occam_runtime = acklibrary { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I%ROOTDIR%include/_tail_cc"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"}, ackfile (d.."builtin.c"), ackfile (d.."chan_strct.c"), diff --git a/lang/pc/comp/pmfile b/lang/pc/comp/pmfile index 24d6f8583..d0dae7907 100644 --- a/lang/pc/comp/pmfile +++ b/lang/pc/comp/pmfile @@ -64,7 +64,7 @@ local cfile_with_headers = cfile { } lang_pc_compiler = cprogram { - CDEFINES = {PARENT, "-DSTATIC=static"}, + CDEFINES = {PARENT, "STATIC=static"}, cfile_with_headers (d.."LLlex.c"), cfile_with_headers (d.."LLmessage.c"), @@ -110,7 +110,7 @@ lang_pc_compiler = cprogram { }, cfile_with_headers { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, tabgen (d.."char.tab") }, @@ -161,6 +161,9 @@ lang_pc_compiler = cprogram { -- Revision history -- $Log$ --- Revision 1.1 2006-07-22 21:03:07 dtrg +-- Revision 1.2 2006-10-15 00:28:11 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.1 2006/07/22 21:03:07 dtrg -- Added support for the Pascal compiler. -- \ No newline at end of file diff --git a/lang/pc/libpc/pmfile b/lang/pc/libpc/pmfile index 122e00639..b493f533e 100644 --- a/lang/pc/libpc/pmfile +++ b/lang/pc/libpc/pmfile @@ -4,7 +4,7 @@ local d = ROOTDIR.."lang/pc/libpc/" lang_pc_runtime = acklibrary { - ACKINCLUDES = {PARENT, "-I%ROOTDIR%h", "-I%ROOTDIR%include/_tail_cc"}, + ACKINCLUDES = {PARENT, "%ROOTDIR%h", "%ROOTDIR%include/_tail_cc"}, ackfile (d.."abi.c"), ackfile (d.."abl.c"), diff --git a/mach/6500/libem/pmfile b/mach/6500/libem/pmfile index 56729e45d..dd12b24be 100644 --- a/mach/6500/libem/pmfile +++ b/mach/6500/libem/pmfile @@ -3,101 +3,96 @@ local d = ROOTDIR.."mach/6500/libem/" -proto_libem = aal { +libem_6500 = acklibrary { outputs = {"%U%/libem-%ARCH%.a"}, + + ackfile (d.."adi4.s"), + ackfile (d.."cmi.s"), + ackfile (d.."cmi4.s"), + ackfile (d.."sbi4.s"), + ackfile (d.."addsub.s"), + ackfile (d.."cmu4.s"), + ackfile (d.."dum_float.s"), + ackfile (d.."dvi4.s"), + ackfile (d.."dvu4.s"), + ackfile (d.."lar.s"), + ackfile (d.."lol.s"), + ackfile (d.."los.s"), + ackfile (d.."loil.s"), + ackfile (d.."loi1.s"), + ackfile (d.."loi.s"), + ackfile (d.."mli4.s"), + ackfile (d.."mlu.s"), + ackfile (d.."mlu4.s"), + ackfile (d.."mul4.s"), + ackfile (d.."rmi.s"), + ackfile (d.."rmi4.s"), + ackfile (d.."div4.s"), + ackfile (d.."rmu.s"), + ackfile (d.."dvi.s"), + ackfile (d.."rmu4.s"), + ackfile (d.."duv4.s"), + ackfile (d.."ngi4.s"), + ackfile (d.."rtt.s"), + ackfile (d.."ret.s"), + ackfile (d.."sar.s"), + ackfile (d.."aar.s"), + ackfile (d.."adi.s"), + ackfile (d.."sbi.s"), + ackfile (d.."mli.s"), + ackfile (d.."ngi.s"), + ackfile (d.."set.s"), + ackfile (d.."zer.s"), + ackfile (d.."stl.s"), + ackfile (d.."sts.s"), + ackfile (d.."sdl.s"), + ackfile (d.."sti.s"), + ackfile (d.."stil.s"), + ackfile (d.."blm.s"), + ackfile (d.."sti1.s"), + ackfile (d.."test2.s"), + ackfile (d.."testFFh.s"), + ackfile (d.."trap.s"), + ackfile (d.."ldi.s"), + ackfile (d.."data.s"), + ackfile (d.."zri.s"), + ackfile (d.."locaddr.s"), + ackfile (d.."and.s"), + ackfile (d.."asp.s"), + ackfile (d.."cii.s"), + ackfile (d.."cms.s"), + ackfile (d.."cmu.s"), + ackfile (d.."com.s"), + ackfile (d.."csa.s"), + ackfile (d.."csb.s"), + ackfile (d.."dup.s"), + ackfile (d.."dvu.s"), + ackfile (d.."exg.s"), + ackfile (d.."exg2.s"), + ackfile (d.."gto.s"), + ackfile (d.."indir.s"), + ackfile (d.."inn.s"), + ackfile (d.."ior.s"), + ackfile (d.."lcs.s"), + ackfile (d.."lxa1.s"), + ackfile (d.."lxa2.s"), + ackfile (d.."lxl.s"), + ackfile (d.."pro.s"), + ackfile (d.."rol.s"), + ackfile (d.."rol4.s"), + ackfile (d.."ror.s"), + ackfile (d.."ror4.s"), + ackfile (d.."sli.s"), + ackfile (d.."sli4.s"), + ackfile (d.."sri.s"), + ackfile (d.."sri4.s"), + ackfile (d.."teq.s"), + ackfile (d.."tge.s"), + ackfile (d.."tgt.s"), + ackfile (d.."tle.s"), + ackfile (d.."tlt.s"), + ackfile (d.."tne.s"), + ackfile (d.."xor.s"), + 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 index 9de1a9ca3..3bd8606b9 100644 --- a/mach/6500/pmfile +++ b/mach/6500/pmfile @@ -4,7 +4,7 @@ local d = ROOTDIR.."mach/6500/" include (d.."dl/pmfile") ---include (d.."libem/pmfile") +include (d.."libem/pmfile") mach_6500 = group { ARCH = "6500", @@ -16,8 +16,18 @@ mach_6500 = group { install = pm.install("%ROOTDIR%/lib/%ARCH%/descr", "%BINDIR%%PLATIND%/%ARCH%/descr") } +support_6500 = group { + ARCH = "6500", + OPTIMISATION = "-O", + + libem_6500, +} + -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/mach/proto/as/pmfile b/mach/proto/as/pmfile index ba771df84..da82a1cef 100644 --- a/mach/proto/as/pmfile +++ b/mach/proto/as/pmfile @@ -8,7 +8,7 @@ local parser = yacc { outputs = {"%U%-%I%.y"}, command = { "cd %out[1]:dirname% && ".. - "%BINDIR%%PLATDEP%/cpp -P -I%ROOTDIR%mach/%ARCH%/as -I"..d.." %CINCLUDES% %in[1]% > %out[1]%" + "%BINDIR%%PLATDEP%/cpp -P -I%ROOTDIR%mach/%ARCH%/as -I"..d.." %CINCLUDES:cincludes% %in[1]% > %out[1]%" }, file (d.."comm2.y"), @@ -45,7 +45,10 @@ proto_as = cprogram { -- Revision history -- $Log$ --- Revision 1.2 2006-07-30 23:41:16 dtrg +-- Revision 1.3 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.2 2006/07/30 23:41:16 dtrg -- Broke dependency on tool_cpp in order to speed up the build. -- -- Revision 1.1 2006/07/20 23:18:19 dtrg diff --git a/mach/proto/cg/pmfile b/mach/proto/cg/pmfile index 43375e25f..aa0caab80 100644 --- a/mach/proto/cg/pmfile +++ b/mach/proto/cg/pmfile @@ -51,47 +51,10 @@ proto_cg = cprogram { 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. +-- Revision 1.2 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). -- +-- Revision 1.1 2006/07/20 23:18:19 dtrg +-- First version in CVS. diff --git a/mach/proto/top/pmfile b/mach/proto/top/pmfile index 1fe0405a5..7434d8deb 100644 --- a/mach/proto/top/pmfile +++ b/mach/proto/top/pmfile @@ -17,9 +17,9 @@ local cfile_with_tables = cfile { proto_top = cprogram { CINCLUDES = { PARENT, - "-Imach/%ARCH%/ncg", - "-Imach", - "-I"..d + "mach/%ARCH%/ncg", + "mach", + d }, cfile_with_tables (d.."queue.c"), @@ -33,7 +33,10 @@ proto_top = cprogram { -- Revision history -- $Log$ --- Revision 1.1 2006-07-22 12:31:19 dtrg +-- Revision 1.2 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.1 2006/07/22 12:31:19 dtrg -- Added support for the top target peephole optimiser. -- -- Revision 1.1 2006/07/20 23:18:18 dtrg diff --git a/modules/src/em_code/pmfile b/modules/src/em_code/pmfile index 85db4f963..3cba771e6 100644 --- a/modules/src/em_code/pmfile +++ b/modules/src/em_code/pmfile @@ -76,7 +76,7 @@ local library_core = group { } module_eme = clibrary { - CEXTRAFLAGS = "-DREADABLE_EM", + CDEFINES = {PARENT, "READABLE_EM"}, library_core, outputs = {"%U%/libeme.a"}, @@ -101,6 +101,9 @@ module_em_code = group { -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-10-15 00:28:11 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- 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 index da2975f3a..8ae76ac85 100644 --- a/modules/src/read_em/pmfile +++ b/modules/src/read_em/pmfile @@ -29,10 +29,10 @@ local withdynamic = cfile { } module_read_emk = clibrary { - CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG", + CDEFINES = {PARENT, "PRIVATE=static", "EXPORT=", "NDEBUG"}, cfile (d.."EM_vars.c"), cfile { - CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCOMPACT", + CDEFINES = {PARENT, "COMPACT"}, (d.."read_em.c") }, withdynamic (d.."mkcalls.c"), @@ -42,14 +42,14 @@ module_read_emk = clibrary { } module_read_emkV = clibrary { - CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG", + CDEFINES = {PARENT, "PRIVATE=static", "EXPORT=", "NDEBUG"}, cfile (d.."EM_vars.c"), cfile { - CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCOMPACT -DCHECKING", + CDEFINES = {PARENT, "COMPACT", "CHECKING"}, (d.."read_em.c") }, withdynamic { - CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCHECKING", + CDEFINES = {PARENT, "CHECKING"}, (d.."mkcalls.c"), }, @@ -58,14 +58,14 @@ module_read_emkV = clibrary { } module_read_emeV = clibrary { - CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG", + CDEFINES = {PARENT, "PRIVATE=static", "EXPORT=", "NDEBUG"}, cfile (d.."EM_vars.c"), cfile { - CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCHECKING", + CDEFINES = {PARENT, "CHECKING"}, (d.."read_em.c") }, withdynamic { - CEXTRAFLAGS = "-DPRIVATE=static -DEXPORT= -DNDEBUG -DCHECKING", + CDEFINES = {PARENT, "CHECKING"}, (d.."mkcalls.c"), }, @@ -85,6 +85,9 @@ module_read_em = group { -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-10-15 00:28:11 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/pm b/pm index bd58427cc..43c49c850 100755 Binary files a/pm and b/pm differ diff --git a/pmfile b/pmfile index 93bc2e97f..c103d2fbd 100644 --- a/pmfile +++ b/pmfile @@ -1,3 +1,4 @@ +-- $Id$ -- $Source$ -- $State$ @@ -8,9 +9,9 @@ include "config.pm" include "first/ack.pm" CINCLUDES = { - "-I"..ROOTDIR.."h", - "-I"..ROOTDIR.."modules/h", - "-I"..HEADERDIR, + ROOTDIR.."h", + ROOTDIR.."modules/h", + HEADERDIR, } -- Load the pmfiles for the various modules. @@ -40,7 +41,7 @@ include "util/cpp/pmfile" include "lang/cem/cpp.ansi/pmfile" include "util/cgg/pmfile" include "util/ncgg/pmfile" -include "util/ceg/pmfile" +-- include "util/ceg/pmfile" include "util/misc/pmfile" include "util/opt/pmfile" include "util/ego/pmfile" @@ -128,14 +129,19 @@ default = group { lang_occam_compiler, lang_basic_compiler, - mach_6500, lang_runtimes { ARCH="6500", OPTIMISATION="-O" }, + mach_6500, + lang_runtimes { ARCH="6500", OPTIMISATION="-O" }, + mach_6800, mach_6805, mach_6809, mach_arm, lang_runtimes { ARCH="arm", OPTIMISATION="-O" }, mach_i386, lang_runtimes { ARCH="i386", OPTIMISATION="-O" }, mach_i80, lang_runtimes { ARCH="i80", OPTIMISATION="-O" }, - mach_i86, lang_runtimes { ARCH="i86", OPTIMISATION="-O" }, + + mach_i86, support_i86, + lang_runtimes { ARCH="i86", OPTIMISATION="-O" }, + mach_m68020, lang_runtimes { ARCH="m68020", OPTIMISATION="-O" }, -- mach_m68k2, lang_runtimes { ARCH="m68k2", OPTIMISATION="-O" }, -- mach_m68k4, lang_runtimes { ARCH="m68k4", OPTIMISATION="-O" }, diff --git a/util/ack/pmfile b/util/ack/pmfile index 8187c3e6e..9d7f5c3ea 100644 --- a/util/ack/pmfile +++ b/util/ack/pmfile @@ -30,11 +30,11 @@ tool_ack = cprogram { cfile (d.."files.c"), cfile { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, ith { makeheaders, i = 1 } }, cfile { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, ith { makeheaders, i = 2 } }, @@ -49,6 +49,9 @@ tool_ack = cprogram { -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/util/arch/pmfile b/util/arch/pmfile index 5c4af33a5..9f7c67d0d 100644 --- a/util/arch/pmfile +++ b/util/arch/pmfile @@ -4,7 +4,7 @@ local d = "util/arch/" tool_aal = cprogram { - CEXTRAFLAGS = "-DAAL", + CDEFINES = {PARENT, "AAL"}, cfile (d.."archiver.c"), lib_print, @@ -20,7 +20,10 @@ tool_aal = cprogram { -- Revision history -- $Log$ --- Revision 1.2 2006-07-30 23:45:35 dtrg +-- Revision 1.3 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.2 2006/07/30 23:45:35 dtrg -- Modified to install aal's manpage. -- -- Revision 1.1 2006/07/20 23:18:18 dtrg diff --git a/util/ceg/as_parser/pmfile b/util/ceg/as_parser/pmfile index df78b987b..da3c67023 100644 --- a/util/ceg/as_parser/pmfile +++ b/util/ceg/as_parser/pmfile @@ -16,8 +16,8 @@ local cfile_with_headers = cfile { } tool_ceg_as_parser = cprogram { - CEXTRAFLAGS = "-DFLEX", - CLIBRARIES = "-lfl", + CDEFINES = {PARENT, "FLEX"}, + CLIBRARIES = {PARENT, "fl"}, cfile_with_headers (d.."conversion.c"), cfile_with_headers (d.."help.c"), @@ -51,6 +51,9 @@ tool_ceg_as_parser_eval = cprogram { -- Revision history -- $Log$ --- Revision 1.1 2006-07-20 23:18:18 dtrg +-- Revision 1.2 2006-10-15 00:28:11 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.1 2006/07/20 23:18:18 dtrg -- First version in CVS. -- diff --git a/util/cgg/pmfile b/util/cgg/pmfile index f8ebfc4dd..cb2e4a369 100644 --- a/util/cgg/pmfile +++ b/util/cgg/pmfile @@ -11,12 +11,12 @@ tool_cgg = cprogram { cfile (d.."main.c"), cfile { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, yacc_bootgram, }, cfile { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, flex { file (d.."bootlex.l") }, @@ -24,7 +24,7 @@ tool_cgg = cprogram { dynamicheaders = yacc_bootgram }, - CLIBRARIES = {"-lfl"}, + CLIBRARIES = {PARENT, "fl"}, lib_em_data, lib_assert, lib_system, @@ -43,7 +43,10 @@ cgg = simple { -- Revision history -- $Log$ --- Revision 1.2 2006-07-22 20:58:27 dtrg +-- Revision 1.3 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.2 2006/07/22 20:58:27 dtrg -- cpp now gets installed in the right place. -- -- Revision 1.1 2006/07/20 23:21:17 dtrg diff --git a/util/cpp/pmfile b/util/cpp/pmfile index de9aa8707..2f777591c 100644 --- a/util/cpp/pmfile +++ b/util/cpp/pmfile @@ -91,7 +91,7 @@ tool_cpp = cprogram { }, cfile_with_headers { - CEXTRAFLAGS = "-I"..d, + CINCLUDES = {PARENT, d}, tabgen (d.."char.tab") }, @@ -110,7 +110,10 @@ tool_cpp = cprogram { -- Revision history -- $Log$ --- Revision 1.3 2006-07-22 20:58:27 dtrg +-- Revision 1.4 2006-10-15 00:28:11 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.3 2006/07/22 20:58:27 dtrg -- cpp now gets installed in the right place. -- -- Revision 1.2 2006/07/22 12:27:31 dtrg diff --git a/util/ego/pmfile b/util/ego/pmfile index fbedacad2..9857f5925 100644 --- a/util/ego/pmfile +++ b/util/ego/pmfile @@ -57,7 +57,7 @@ local ego_core = cprogram { } tool_ego = group { - CDEFINES = {PARENT, "-DVERBOSE", "-DNOTCOMPACT"}, + CDEFINES = {PARENT, "VERBOSE", "NOTCOMPACT"}, ego_core { cfile_with_headers (d.."bo/bo.c"), @@ -235,7 +235,10 @@ ego_descr = simple { -- Revision history -- $Log$ --- Revision 1.2 2006-07-23 17:52:23 dtrg +-- Revision 1.3 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.2 2006/07/23 17:52:23 dtrg -- cpp now gets installed in the right place. -- -- Revision 1.1 2006/07/22 00:52:01 dtrg diff --git a/util/opt/pmfile b/util/opt/pmfile index 40884bb71..900d400a5 100644 --- a/util/opt/pmfile +++ b/util/opt/pmfile @@ -48,7 +48,7 @@ local local_tool_opt = cprogram { }, cprogram { - CLIBRARIES = {"-lfl"}, + CLIBRARIES = {PARENT, "fl"}, cfile { yacc { @@ -87,7 +87,7 @@ tool_opt = group { }, group { - CEXTRAFLAGS = "-DGLOBAL_OPT", + CDEFINES = {PARENT, "GLOBAL_OPT"}, local_tool_opt, install = pm.install(BINDIR.."lib.bin/em_opt2") }, @@ -95,6 +95,9 @@ tool_opt = group { -- Revision history -- $Log$ --- Revision 1.2 2006-07-20 23:10:07 dtrg +-- Revision 1.3 2006-10-15 00:28:12 dtrg +-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes). +-- +-- Revision 1.2 2006/07/20 23:10:07 dtrg -- Fixed revision history. --