pmfile 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. -- $Source$
  2. -- $State$
  3. include "first/c.pm"
  4. include "first/yacc.pm"
  5. include "first/llgen.pm"
  6. include "config.pm"
  7. CINCLUDES = {
  8. "-I"..ROOTDIR.."h",
  9. "-I"..ROOTDIR.."modules/h",
  10. "-I"..HEADERDIR,
  11. }
  12. -- Load the pmfiles for the various modules.
  13. include "util/data/pmfile"
  14. include "modules/src/alloc/pmfile"
  15. include "modules/src/assert/pmfile"
  16. include "modules/src/system/pmfile"
  17. include "modules/src/string/pmfile"
  18. include "modules/src/read_em/pmfile"
  19. include "modules/src/em_code/pmfile"
  20. include "modules/src/em_mes/pmfile"
  21. include "modules/src/print/pmfile"
  22. include "modules/src/string/pmfile"
  23. include "modules/src/object/pmfile"
  24. include "modules/src/idf/pmfile"
  25. include "modules/src/print/pmfile"
  26. include "modules/src/input/pmfile"
  27. include "modules/src/flt_arith/pmfile"
  28. include "util/amisc/pmfile"
  29. include "util/cmisc/pmfile"
  30. include "util/ack/pmfile"
  31. include "util/arch/pmfile"
  32. include "util/cpp/pmfile"
  33. include "util/cgg/pmfile"
  34. include "util/ncgg/pmfile"
  35. include "util/ceg/pmfile"
  36. include "util/misc/pmfile"
  37. include "util/opt/pmfile"
  38. include "lang/cem/cemcom/pmfile"
  39. include "lang/cem/cemcom.ansi/pmfile"
  40. include "mach/proto/pmfile"
  41. include "mach/6500/pmfile"
  42. include "mach/6800/pmfile"
  43. include "mach/6805/pmfile"
  44. include "mach/6809/pmfile"
  45. include "mach/arm/pmfile"
  46. include "mach/i386/pmfile"
  47. include "mach/i80/pmfile"
  48. include "mach/i86/pmfile"
  49. include "mach/m68020/pmfile"
  50. include "mach/m68k2/pmfile"
  51. include "mach/m68k4/pmfile"
  52. include "mach/ns/pmfile"
  53. include "mach/pdp/pmfile"
  54. include "mach/s2650/pmfile"
  55. include "mach/vax4/pmfile"
  56. include "mach/z80/pmfile"
  57. include "mach/z8000/pmfile"
  58. default = group {
  59. -- Some of the dependency management across modules isn't entirely
  60. -- complete, for simplicity; as a result, the order here is important.
  61. -- In particular, referencing a library does not cause the library to
  62. -- be built, hence the reason why the modules must be built first. Also,
  63. -- some of these generate header files...
  64. module_em_data,
  65. module_system,
  66. module_alloc,
  67. module_assert,
  68. module_string,
  69. module_em_code,
  70. module_read_em,
  71. module_em_mes,
  72. module_print,
  73. module_object,
  74. module_idf,
  75. module_print,
  76. module_input,
  77. module_flt_arith,
  78. tool_tabgen,
  79. tool_aal,
  80. tool_ack,
  81. tool_cpp,
  82. tool_cgg,
  83. tool_ncgg,
  84. tool_ceg,
  85. tool_em_decode,
  86. tool_em_encode,
  87. tool_opt,
  88. lang_cem_cemcom,
  89. lang_cem_cemcom_ansi,
  90. mach_6500,
  91. mach_6800,
  92. mach_6805,
  93. mach_6809,
  94. mach_arm,
  95. mach_i386,
  96. mach_i80,
  97. mach_i86,
  98. mach_m68020,
  99. mach_m68k2,
  100. mach_m68k4,
  101. mach_ns,
  102. mach_pdp,
  103. mach_s2650,
  104. mach_vax4,
  105. mach_z80,
  106. mach_z8000,
  107. }
  108. -- Ensure that the work directories exist.
  109. posix.mkdir(TEMPDIR)
  110. posix.mkdir(HEADERDIR)
  111. -- Build the configuration headers, rather crudely. FIXME.
  112. configure = simple {
  113. outputs = {HEADERDIR.."local.h", HEADERDIR.."em_path.h"},
  114. command = "",
  115. __dobuild = function(self, inputs, outputs)
  116. -- Build 'local.h', rather crudely
  117. local f = io.open(HEADERDIR.."local.h", "w")
  118. f:write("#define VERSION 3\n") -- EM byte-code version
  119. f:write("#define ACKM \"", DEFAULT_ARCHITECTURE, "\"\n")
  120. f:write("#define BIGMACHINE 1\n") -- No, we don't have a 16-bit architecture
  121. f:write("#define SYS_5\n")
  122. f:close()
  123. -- Build 'em_path.h', rather crudely
  124. local f = io.open(HEADERDIR.."em_path.h", "w")
  125. f:write("#define TMP_DIR \"", ACK_TEMP_DIR, "\"\n")
  126. f:write("#define EM_DIR \"", PREFIX, "\"\n")
  127. f:write("#define ACK_PATH \"", PLATIND, "/descr\"\n")
  128. f:close()
  129. end
  130. }
  131. -- Revision history
  132. -- $Log: genmakefile,v