123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- -- $Source$
- -- $State$
- local d = ROOTDIR.."lang/m2/comp/"
- local extract_parameters = simple {
- outputs = {
- "%U%/errout.h",
- "%U%/idfsize.h",
- "%U%/numsize.h",
- "%U%/strsize.h",
- "%U%/target_sizes.h",
- "%U%/debugcst.h",
- "%U%/inputtype.h",
- "%U%/density.h",
- "%U%/squeeze.h",
- "%U%/strict3rd.h",
- "%U%/nocross.h",
- "%U%/nostrict.h",
- "%U%/bigresult.h",
- "%U%/dbsymtab.h",
- "%U%/use_insert.h",
- "%U%/uns_arith.h",
- },
-
- command = {
- "cd %out[1]:dirname% && %in[1]% %in[2]%"
- },
-
- file (d.."make.hfiles"),
- file (d.."BigPars")
- }
- local lpars = LLgen {
- simple {
- outputs = {"%U%/tokenfile.g"},
- command = {
- "%in[1]% < %in[2]% > %out[1]%"
- },
- file (d.."make.tokfile"),
- file (d.."tokenname.c")
- },
- file (d.."program.g"),
- file (d.."declar.g"),
- file (d.."expression.g"),
- file (d.."statement.g"),
- }
- local allocd_header = simple {
- class = "allocd_header",
- command = {
- "%in[1]% < %in[2]% > %out[1]%"
- },
-
- file (d.."make.allocd")
- }
-
- local cfile_with_headers = cfile {
- class = "cfile_with_headers",
- dynamicheaders = {
- file (d),
- extract_parameters,
- allocd_header { outputs = {"%U%/def.h"}, (d.."def.H") },
- allocd_header { outputs = {"%U%/type.h"}, (d.."type.H") },
- allocd_header { outputs = {"%U%/real.h"}, (d.."real.H") },
- allocd_header { outputs = {"%U%/node.h"}, (d.."node.H") },
- lpars
- }
- }
-
- lang_m2_compiler = cprogram {
- CDEFINES = {PARENT, "STATIC=static"},
-
- cfile_with_headers (d.."LLlex.c"),
- cfile_with_headers (d.."LLmessage.c"),
- cfile_with_headers (d.."error.c"),
- cfile_with_headers (d.."main.c"),
- cfile_with_headers (d.."tokenname.c"),
- cfile_with_headers (d.."idf.c"),
- cfile_with_headers (d.."input.c"),
- cfile_with_headers (d.."type.c"),
- cfile_with_headers (d.."def.c"),
- cfile_with_headers (d.."misc.c"),
- cfile_with_headers (d.."enter.c"),
- cfile_with_headers (d.."defmodule.c"),
- cfile_with_headers (d.."typequiv.c"),
- cfile_with_headers (d.."node.c"),
- cfile_with_headers (d.."cstoper.c"),
- cfile_with_headers (d.."chk_expr.c"),
- cfile_with_headers (d.."options.c"),
- cfile_with_headers (d.."walk.c"),
- cfile_with_headers (d.."desig.c"),
- cfile_with_headers (d.."code.c"),
- cfile_with_headers (d.."lookup.c"),
- cfile_with_headers (d.."stab.c"),
- foreach {
- rule = cfile_with_headers,
- ith { lpars, from=2 }
- },
- cfile_with_headers {
- simple {
- outputs = {"%U%-symbol2str.c"},
- command = {
- "%in[1]% < %in[2]% > %out[1]%"
- },
-
- file (d.."make.tokcase"),
- file (d.."tokenname.c")
- }
- },
-
- cfile_with_headers {
- CINCLUDES = {PARENT, d},
- tabgen (d.."char.tab")
- },
- cfile_with_headers {
- simple {
- outputs = {"%U%-next.c"},
- command = {
- "%in% > %out%"
- },
-
- file (d.."make.next"),
- file (d.."def.H"),
- file (d.."type.H"),
- file (d.."real.H"),
- file (d.."node.H"),
- file (d.."scope.C"),
- file (d.."tmpvar.C"),
- file (d.."casestat.C"),
- }
- },
- cfile_with_headers {
- allocd_header { outputs = {"%U%-scope.c"}, (d.."scope.C") }
- },
-
- cfile_with_headers {
- allocd_header { outputs = {"%U%-tmpvar.c"}, (d.."tmpvar.C") }
- },
-
- cfile_with_headers {
- allocd_header { outputs = {"%U%-casestat.c"}, (d.."casestat.C") }
- },
-
- lib_em_mes,
- lib_emk,
- lib_em_data,
- lib_input,
- lib_assert,
- lib_alloc,
- lib_flt_arith,
- lib_print,
- lib_string,
- lib_system,
- outputs = {"%U%/em_m2"},
- install = {
- pm.install( "%BINDIR%%PLATDEP%/em_m2"),
- pm.install(d.."em_m2.6", "%BINDIR%/man/man6/em_m2.6"),
- }
- }
- -- Revision history
- -- $Log$
- -- 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
- -- Added support for the Modula-2 compiler.
|