2006-07-20 23:04:28 +00:00
|
|
|
-- $Source$
|
|
|
|
-- $State$
|
|
|
|
|
|
|
|
local d = ROOTDIR.."util/opt/"
|
|
|
|
|
|
|
|
local cfile_with_headers = cfile {
|
|
|
|
class = "cfile_with_headers",
|
|
|
|
dynamicheaders = {
|
|
|
|
file (d),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
local local_tool_opt = cprogram {
|
|
|
|
class = "opt_rule",
|
|
|
|
|
|
|
|
cfile_with_headers (d.."main.c"),
|
|
|
|
cfile_with_headers (d.."getline.c"),
|
|
|
|
cfile_with_headers (d.."lookup.c"),
|
|
|
|
cfile_with_headers (d.."var.c"),
|
|
|
|
cfile_with_headers (d.."process.c"),
|
|
|
|
cfile_with_headers (d.."backward.c"),
|
|
|
|
cfile_with_headers (d.."util.c"),
|
|
|
|
cfile_with_headers (d.."alloc.c"),
|
|
|
|
cfile_with_headers (d.."putline.c"),
|
|
|
|
cfile_with_headers (d.."cleanup.c"),
|
|
|
|
cfile_with_headers (d.."peephole.c"),
|
|
|
|
cfile_with_headers (d.."flow.c"),
|
|
|
|
cfile_with_headers (d.."tes.c"),
|
|
|
|
cfile_with_headers (d.."reg.c"),
|
|
|
|
|
|
|
|
cfile_with_headers {
|
|
|
|
simple {
|
|
|
|
outputs = {"%U%-pop_push.c"},
|
|
|
|
command = {
|
|
|
|
"awk -f %in[1]% < %in[2]% > %out%"
|
|
|
|
},
|
|
|
|
|
|
|
|
file (d.."pop_push.awk"),
|
|
|
|
file (ROOTDIR.."etc/em_table")
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
cfile_with_headers {
|
|
|
|
simple {
|
|
|
|
outputs = {"%U%-pattern.c"},
|
|
|
|
command = {
|
2007-02-20 00:27:01 +00:00
|
|
|
"%in[1]% < %in[2]% > %out%"
|
2006-07-20 23:04:28 +00:00
|
|
|
},
|
2007-02-20 00:27:01 +00:00
|
|
|
install = pm.install("pattern.c"),
|
2006-07-20 23:04:28 +00:00
|
|
|
|
|
|
|
cprogram {
|
2006-10-15 00:28:12 +00:00
|
|
|
CLIBRARIES = {PARENT, "fl"},
|
2006-07-20 23:04:28 +00:00
|
|
|
|
|
|
|
cfile {
|
|
|
|
yacc {
|
|
|
|
file (d.."mktab.y")
|
|
|
|
},
|
|
|
|
|
|
|
|
dynamicheaders = {
|
|
|
|
file (d),
|
|
|
|
flex {
|
|
|
|
file (d.."scan.l")
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
lib_em_data,
|
|
|
|
},
|
|
|
|
|
2007-02-20 00:27:01 +00:00
|
|
|
preprocess {
|
|
|
|
file (d.."patterns")
|
|
|
|
}
|
2006-07-20 23:04:28 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
lib_em_data,
|
|
|
|
lib_assert,
|
|
|
|
lib_print,
|
|
|
|
lib_alloc,
|
|
|
|
lib_system,
|
|
|
|
lib_string,
|
|
|
|
|
|
|
|
outputs = {"%U%/em_opt"},
|
|
|
|
}
|
|
|
|
|
|
|
|
tool_opt = group {
|
|
|
|
group {
|
|
|
|
local_tool_opt,
|
|
|
|
install = pm.install(BINDIR.."lib.bin/em_opt")
|
|
|
|
},
|
|
|
|
|
|
|
|
group {
|
2006-10-15 00:28:12 +00:00
|
|
|
CDEFINES = {PARENT, "GLOBAL_OPT"},
|
2006-07-20 23:04:28 +00:00
|
|
|
local_tool_opt,
|
|
|
|
install = pm.install(BINDIR.."lib.bin/em_opt2")
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
-- Revision history
|
2006-07-20 23:10:07 +00:00
|
|
|
-- $Log$
|
2007-02-20 00:27:01 +00:00
|
|
|
-- Revision 1.4 2007-02-20 00:27:01 dtrg
|
|
|
|
-- Fixed a compilation error that was causing opt to not have its
|
|
|
|
-- peephole optimisation tables, which would make it generate
|
|
|
|
-- duff code.
|
|
|
|
--
|
|
|
|
-- Revision 1.3 2006/10/15 00:28:12 dtrg
|
2006-10-15 00:28:12 +00:00
|
|
|
-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes).
|
|
|
|
--
|
|
|
|
-- Revision 1.2 2006/07/20 23:10:07 dtrg
|
2006-07-20 23:10:07 +00:00
|
|
|
-- Fixed revision history.
|
|
|
|
--
|