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"},
}
+-- $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.
-- 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
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 = {}
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
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
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
}
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"},
}
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]%"
}
}
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"),
},
cfile_with_headers {
- CEXTRAFLAGS = "-I"..d,
+ CINCLUDES = {PARENT, d},
tabgen (d.."char.tab")
},
},
cfile_with_headers {
- CEXTRAFLAGS = "-I"..d,
+ CINCLUDES = {PARENT, d},
tabgen (d.."char.tab")
},
},
cfile_with_headers {
- CEXTRAFLAGS = "-I"..d,
+ CINCLUDES = {PARENT, d},
tabgen (d.."char.tab")
},
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
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"),
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"),
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"),
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"),
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"),
}
lang_m2_compiler = cprogram {
- CDEFINES = {PARENT, "-DSTATIC=static"},
+ CDEFINES = {PARENT, "STATIC=static"},
cfile_with_headers (d.."LLlex.c"),
cfile_with_headers (d.."LLmessage.c"),
},
cfile_with_headers {
- CEXTRAFLAGS = "-I"..d,
+ CINCLUDES = {PARENT, d},
tabgen (d.."char.tab")
},
-- 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
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"),
}
lang_occam_compiler = cprogram {
- CLIBRARIES = {PARENT, "-lfl"},
+ CLIBRARIES = {PARENT, "fl"},
cfile_with_headers (d.."builtin.c"),
cfile_with_headers (d.."code.c"),
-- 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
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"),
}
lang_pc_compiler = cprogram {
- CDEFINES = {PARENT, "-DSTATIC=static"},
+ CDEFINES = {PARENT, "STATIC=static"},
cfile_with_headers (d.."LLlex.c"),
cfile_with_headers (d.."LLmessage.c"),
},
cfile_with_headers {
- CEXTRAFLAGS = "-I"..d,
+ CINCLUDES = {PARENT, d},
tabgen (d.."char.tab")
},
-- 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
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"),
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"),
+}
local d = ROOTDIR.."mach/6500/"
include (d.."dl/pmfile")
---include (d.."libem/pmfile")
+include (d.."libem/pmfile")
mach_6500 = group {
ARCH = "6500",
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.
--
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"),
-- 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
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.
proto_top = cprogram {
CINCLUDES = {
PARENT,
- "-Imach/%ARCH%/ncg",
- "-Imach",
- "-I"..d
+ "mach/%ARCH%/ncg",
+ "mach",
+ d
},
cfile_with_tables (d.."queue.c"),
-- 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
}
module_eme = clibrary {
- CEXTRAFLAGS = "-DREADABLE_EM",
+ CDEFINES = {PARENT, "READABLE_EM"},
library_core,
outputs = {"%U%/libeme.a"},
-- 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.
--
}
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"),
}
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"),
},
}
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"),
},
-- 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.
--
+-- $Id$
-- $Source$
-- $State$
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.
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"
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" },
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 }
},
-- 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.
--
local d = "util/arch/"
tool_aal = cprogram {
- CEXTRAFLAGS = "-DAAL",
+ CDEFINES = {PARENT, "AAL"},
cfile (d.."archiver.c"),
lib_print,
-- 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
}
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"),
-- 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.
--
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")
},
dynamicheaders = yacc_bootgram
},
- CLIBRARIES = {"-lfl"},
+ CLIBRARIES = {PARENT, "fl"},
lib_em_data,
lib_assert,
lib_system,
-- 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
},
cfile_with_headers {
- CEXTRAFLAGS = "-I"..d,
+ CINCLUDES = {PARENT, d},
tabgen (d.."char.tab")
},
-- 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
}
tool_ego = group {
- CDEFINES = {PARENT, "-DVERBOSE", "-DNOTCOMPACT"},
+ CDEFINES = {PARENT, "VERBOSE", "NOTCOMPACT"},
ego_core {
cfile_with_headers (d.."bo/bo.c"),
-- 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
},
cprogram {
- CLIBRARIES = {"-lfl"},
+ CLIBRARIES = {PARENT, "fl"},
cfile {
yacc {
},
group {
- CEXTRAFLAGS = "-DGLOBAL_OPT",
+ CDEFINES = {PARENT, "GLOBAL_OPT"},
local_tool_opt,
install = pm.install(BINDIR.."lib.bin/em_opt2")
},
-- 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.
--