Browse Source

Updated to the version 0.1 of Prime Mover (which involves some syntax changes).

dtrg 17 years ago
parent
commit
8601c6c5bf

+ 1 - 1
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"},
 }

+ 77 - 16
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"},
 }

+ 2 - 2
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]%"
 	}
 }
 

+ 1 - 1
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"),

+ 1 - 1
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")
 	},
 

+ 1 - 1
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")
 	},
 

+ 1 - 1
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")
 	},
 

+ 3 - 3
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"),

+ 1 - 1
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"),

+ 1 - 1
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"),

+ 2 - 2
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"),

+ 1 - 1
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"),

+ 6 - 3
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

+ 1 - 1
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"),

+ 5 - 2
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.
 --

+ 1 - 1
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"),

+ 6 - 3
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.
 --

+ 1 - 1
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"),

+ 90 - 95
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"},
-	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"),
+}

+ 12 - 2
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.
 --

+ 5 - 2
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

+ 4 - 41
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 <<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.

+ 7 - 4
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

+ 5 - 2
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.
 --

+ 12 - 9
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.
 --

BIN
pm


+ 12 - 6
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" },

+ 6 - 3
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.
 --

+ 5 - 2
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

+ 6 - 3
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.
 --

+ 7 - 4
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

+ 5 - 2
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

+ 5 - 2
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

+ 6 - 3
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.
 --