-- $Source$ -- $State$ include "first/c.pm" include "first/yacc.pm" include "first/llgen.pm" include "config.pm" include "first/ack.pm" CINCLUDES = { "-I"..ROOTDIR.."h", "-I"..ROOTDIR.."modules/h", "-I"..HEADERDIR, } -- Load the pmfiles for the various modules. include "util/data/pmfile" include "modules/src/alloc/pmfile" include "modules/src/assert/pmfile" include "modules/src/system/pmfile" include "modules/src/string/pmfile" include "modules/src/read_em/pmfile" include "modules/src/em_code/pmfile" include "modules/src/em_mes/pmfile" include "modules/src/print/pmfile" include "modules/src/string/pmfile" include "modules/src/object/pmfile" include "modules/src/idf/pmfile" include "modules/src/print/pmfile" include "modules/src/input/pmfile" include "modules/src/flt_arith/pmfile" include "util/amisc/pmfile" include "util/cmisc/pmfile" include "util/ack/pmfile" include "util/arch/pmfile" include "util/cpp/pmfile" include "util/cgg/pmfile" include "util/ncgg/pmfile" include "util/ceg/pmfile" include "util/misc/pmfile" include "util/opt/pmfile" include "util/ego/pmfile" include "util/topgen/pmfile" include "util/led/pmfile" include "lang/cem/cemcom/pmfile" include "lang/cem/cemcom.ansi/pmfile" include "lang/pc/pmfile" include "lang/m2/pmfile" include "lang/occam/pmfile" include "lang/basic/pmfile" include "mach/proto/pmfile" include "mach/6500/pmfile" include "mach/6800/pmfile" include "mach/6805/pmfile" include "mach/6809/pmfile" include "mach/arm/pmfile" include "mach/i386/pmfile" include "mach/i80/pmfile" include "mach/i86/pmfile" include "mach/m68020/pmfile" include "mach/m68k2/pmfile" include "mach/m68k4/pmfile" include "mach/ns/pmfile" include "mach/pdp/pmfile" include "mach/s2650/pmfile" include "mach/vax4/pmfile" include "mach/z80/pmfile" include "mach/z8000/pmfile" -- This is the list of language runtimes that is built for each architecture. lang_runtimes = group { lang_pc_runtime, lang_occam_runtime, lang_basic_runtime, } default = group { -- Some of the dependency management across modules isn't entirely -- complete, for simplicity; as a result, the order here is important. -- In particular, referencing a library does not cause the library to -- be built, hence the reason why the modules must be built first. Also, -- some of these generate header files... module_em_data, module_system, module_alloc, module_assert, module_string, module_em_code, module_read_em, module_em_mes, module_print, module_object, module_idf, module_print, module_input, module_flt_arith, tool_tabgen, tool_aal, tool_ack, tool_cpp, tool_cgg, tool_ncgg, -- tool_ceg, tool_em_decode, tool_em_encode, tool_esize, tool_opt, tool_ego, tool_topgen, tool_led, lang_cem_cemcom, lang_cem_cemcom_ansi, lang_pc_compiler, lang_m2, lang_occam_compiler, lang_basic_compiler, 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="-O3" }, mach_i80, lang_runtimes { ARCH="i80", OPTIMISATION="-O" }, mach_i86, lang_runtimes { ARCH="i86", OPTIMISATION="-O6" }, mach_m68020, lang_runtimes { ARCH="m68020", OPTIMISATION="-O6" }, -- mach_m68k2, lang_runtimes { ARCH="m68k2", OPTIMISATION="-O" }, -- mach_m68k4, lang_runtimes { ARCH="m68k4", OPTIMISATION="-O6" }, mach_ns, lang_runtimes { ARCH="ns", OPTIMISATION="-O" }, mach_pdp, lang_runtimes { ARCH="pdp", OPTIMISATION="-O6" }, mach_s2650, -- mach_vax4, lang_runtimes { ARCH="vax4", OPTIMISATION="-O" }, mach_z80, lang_runtimes { ARCH="z80", OPTIMISATION="-O" }, mach_z8000, lang_runtimes { ARCH="z8000", OPTIMISATION="-O" }, } -- Ensure that the work directories exist. posix.mkdir(TEMPDIR) posix.mkdir(HEADERDIR) -- Build the configuration headers, rather crudely. FIXME. configure = simple { outputs = {HEADERDIR.."local.h", HEADERDIR.."em_path.h"}, command = "", __dobuild = function(self, inputs, outputs) -- Build 'local.h', rather crudely local f = io.open(HEADERDIR.."local.h", "w") f:write("#define VERSION 3\n") -- EM byte-code version f:write("#define ACKM \"", DEFAULT_ARCHITECTURE, "\"\n") f:write("#define BIGMACHINE 1\n") -- No, we don't have a 16-bit architecture f:write("#define SYS_5\n") f:close() -- Build 'em_path.h', rather crudely local f = io.open(HEADERDIR.."em_path.h", "w") f:write("#define TMP_DIR \"", ACK_TEMP_DIR, "\"\n") f:write("#define EM_DIR \"", PREFIX, "\"\n") f:write("#define ACK_PATH \"", PLATIND, "/descr\"\n") f:close() end } -- Revision history -- $Log$ -- Revision 1.13 2006-07-27 22:07:38 dtrg -- Added support for the Pascal language runtime. -- -- Revision 1.12 2006/07/27 21:58:13 dtrg -- Added support for the Basic and Occam language runtimes. -- -- Revision 1.11 2006/07/26 23:08:09 dtrg -- Added support for the Basic compiler. -- -- Revision 1.10 2006/07/26 18:23:32 dtrg -- Added support for the Occam compiler. -- -- Revision 1.9 2006/07/26 17:12:19 dtrg -- Added support for the Modula-2 compiler. -- -- Revision 1.8 2006/07/22 21:24:41 dtrg -- Really added support for the Pascal compiler. -- -- Revision 1.7 2006/07/22 21:03:07 dtrg -- Added support for the Pascal compiler. -- -- Revision 1.6 2006/07/22 20:10:41 dtrg -- Added support for the esize object inspection tool. -- -- Revision 1.5 2006/07/22 20:04:41 dtrg -- Added support for the led link editor. -- -- Revision 1.4 2006/07/22 12:31:19 dtrg -- Added support for the top target peephole optimiser. -- -- Revision 1.3 2006/07/22 00:52:01 dtrg -- Added support for the ego global optimisation suite. -- -- Revision 1.2 2006/07/20 23:24:42 dtrg -- Fixed revision history.