Updated to the version 0.1 of Prime Mover (which involves some syntax changes).
authordtrg <none@none>
Sun, 15 Oct 2006 00:28:12 +0000 (00:28 +0000)
committerdtrg <none@none>
Sun, 15 Oct 2006 00:28:12 +0000 (00:28 +0000)
34 files changed:
first/ack.pm
first/c.pm
first/yacc.pm
lang/basic/lib/pmfile
lang/cem/cemcom.ansi/pmfile
lang/cem/cemcom/pmfile
lang/cem/cpp.ansi/pmfile
lang/cem/libcc.ansi/pmfile
lang/cem/libcc/gen/pmfile
lang/cem/libcc/math/pmfile
lang/cem/libcc/mon/pmfile
lang/cem/libcc/stdio/pmfile
lang/m2/comp/pmfile
lang/m2/libm2/pmfile
lang/occam/comp/pmfile
lang/occam/lib/pmfile
lang/pc/comp/pmfile
lang/pc/libpc/pmfile
mach/6500/libem/pmfile
mach/6500/pmfile
mach/proto/as/pmfile
mach/proto/cg/pmfile
mach/proto/top/pmfile
modules/src/em_code/pmfile
modules/src/read_em/pmfile
pm
pmfile
util/ack/pmfile
util/arch/pmfile
util/ceg/as_parser/pmfile
util/cgg/pmfile
util/cpp/pmfile
util/ego/pmfile
util/opt/pmfile

index 9cfe4ac..65ace9e 100644 (file)
@@ -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"},
 }
index 59c0bb0..95fa52d 100644 (file)
@@ -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"},
 }
index 174bcf0..92bbe39 100644 (file)
@@ -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]%"
        }
 }
 
index 53fd6ff..fa27ecf 100644 (file)
@@ -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"),
index ed393a5..c227951 100644 (file)
@@ -156,7 +156,7 @@ lang_cem_ansi_compiler = cprogram {
        },
        
        cfile_with_headers {
-               CEXTRAFLAGS = "-I"..d,
+               CINCLUDES = {PARENT, d},
                tabgen (d.."char.tab")
        },
 
index de97377..e415c38 100644 (file)
@@ -156,7 +156,7 @@ lang_cem_compiler = cprogram {
        },
        
        cfile_with_headers {
-               CEXTRAFLAGS = "-I"..d,
+               CINCLUDES = {PARENT, d},
                tabgen (d.."char.tab")
        },
 
index b21c677..2fb98fa 100644 (file)
@@ -99,7 +99,7 @@ tool_cpp_ansi = cprogram {
        },
        
        cfile_with_headers {
-               CEXTRAFLAGS = "-I"..d,
+               CINCLUDES = {PARENT, d},
                tabgen (d.."char.tab")
        },
 
index 4d6f140..3f3e3bd 100644 (file)
@@ -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"),
index f6069db..4a6995f 100644 (file)
@@ -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"),
index 3b89cc6..90c5da1 100644 (file)
@@ -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"),
index 819e62b..f7c6c60 100644 (file)
@@ -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"),
index 9deb5b8..21cb247 100644 (file)
@@ -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"),
index 8f8b6d7..0e245b9 100644 (file)
@@ -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
index 31ba08c..71a62c5 100644 (file)
@@ -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"),
index e579f0f..3a862d8 100644 (file)
@@ -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
index a8bdfe0..cef68e1 100644 (file)
@@ -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"),
index 24d6f85..d0dae79 100644 (file)
@@ -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
index 122e006..b493f53 100644 (file)
@@ -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"),
index 56729e4..dd12b24 100644 (file)
 
 local d = ROOTDIR.."mach/6500/libem/"
 
-proto_libem = aal {
+libem_6500 = acklibrary {
        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"),
-}
+       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"),
 
--- Revision history
--- $Log$
--- Revision 1.1  2006-07-20 23:18:18  dtrg
--- First version in CVS.
---
+       install = pm.install("%BINDIR%lib/%ARCH%/tail_em"),
+}
index 9de1a9c..3bd8606 100644 (file)
@@ -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.
 --
index ba771df..da82a1c 100644 (file)
@@ -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
index 43375e2..aa0caab 100644 (file)
@@ -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 <<EOF
-$OBJDIR/src/arch/$1/cg/tables.c: \
-               $SRCDIR/src/arch/$1/cg/table \
-               $DESTDIR/bin/cpp \
-               $DESTDIR/bin/cgg
-       @echo HOSTCGG $SRCDIR/src/arch/$1/cg/table
-       @mkdir -p \$(dir \$@)
-       @(cd $OBJDIR/src/arch/$1/cg && $DESTDIR/bin/cpp -P -I$SRCDIR/src/arch/$1/cg $SRCDIR/src/arch/$1/cg/table | \
-               $DESTDIR/bin/cgg) > /dev/null
-EOF
-       pop
-}
-
-# Revision history
-# $Log$
-# Revision 1.1  2006-07-20 23:18:19  dtrg
-# First version in CVS.
-#
---]]
-
 -- Revision history
 -- $Log$
--- Revision 1.1  2006-07-20 23:18:19  dtrg
--- First version in CVS.
+-- 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.
index 1fe0405..7434d8d 100644 (file)
@@ -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
index 85db4f9..3cba771 100644 (file)
@@ -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.
 --
index da2975f..8ae76ac 100644 (file)
@@ -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 bd58427..43c49c8 100755 (executable)
Binary files a/pm and b/pm differ
diff --git a/pmfile b/pmfile
index 93bc2e9..c103d2f 100644 (file)
--- 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" },
index 8187c3e..9d7f5c3 100644 (file)
@@ -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.
 --
index 5c4af33..9f7c67d 100644 (file)
@@ -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
index df78b98..da3c670 100644 (file)
@@ -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.
 --
index f8ebfc4..cb2e4a3 100644 (file)
@@ -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
index de9aa87..2f77759 100644 (file)
@@ -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
index fbedaca..9857f59 100644 (file)
@@ -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
index 40884bb..900d400 100644 (file)
@@ -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.
 --