immunio 0.15.4 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +0 -27
  3. data/ext/immunio/Rakefile +9 -0
  4. data/lib/immunio/plugins/active_record.rb +1 -1
  5. data/lib/immunio/plugins/active_record_relation.rb +1 -1
  6. data/lib/immunio/plugins/environment_reporter.rb +20 -0
  7. data/lib/immunio/rufus_lua_ext/ref.rb +1 -3
  8. data/lib/immunio/version.rb +1 -1
  9. data/lib/immunio/vm.rb +1 -2
  10. data/lua-hooks/Makefile +97 -0
  11. data/lua-hooks/ext/all.c +41 -52
  12. data/lua-hooks/ext/all.o +0 -0
  13. data/lua-hooks/ext/libinjection/libinjection_html5.o +0 -0
  14. data/lua-hooks/ext/libinjection/libinjection_sqli.o +0 -0
  15. data/lua-hooks/ext/libinjection/libinjection_xss.o +0 -0
  16. data/lua-hooks/ext/libinjection/lualib.c +2 -2
  17. data/lua-hooks/ext/lpeg/lpcap.c +2 -2
  18. data/lua-hooks/ext/lpeg/lpcap.o +0 -0
  19. data/lua-hooks/ext/lpeg/lpcode.c +2 -2
  20. data/lua-hooks/ext/lpeg/lpcode.h +1 -1
  21. data/lua-hooks/ext/lpeg/lpcode.o +0 -0
  22. data/lua-hooks/ext/lpeg/lpprint.o +0 -0
  23. data/lua-hooks/ext/lpeg/lptree.c +2 -2
  24. data/lua-hooks/ext/lpeg/lptypes.h +1 -1
  25. data/lua-hooks/ext/lpeg/lpvm.c +2 -2
  26. data/lua-hooks/ext/lpeg/lpvm.o +0 -0
  27. data/lua-hooks/ext/lua-cmsgpack/lua_cmsgpack.c +16 -3
  28. data/lua-hooks/ext/lua-snapshot/snapshot.c +14 -7
  29. data/lua-hooks/ext/luajit/COPYRIGHT +56 -0
  30. data/lua-hooks/ext/luajit/Makefile +159 -0
  31. data/lua-hooks/ext/luajit/README +16 -0
  32. data/lua-hooks/ext/luajit/doc/bluequad-print.css +166 -0
  33. data/lua-hooks/ext/luajit/doc/bluequad.css +325 -0
  34. data/lua-hooks/ext/luajit/doc/changes.html +804 -0
  35. data/lua-hooks/ext/luajit/doc/contact.html +104 -0
  36. data/lua-hooks/ext/luajit/doc/ext_c_api.html +189 -0
  37. data/lua-hooks/ext/luajit/doc/ext_ffi.html +332 -0
  38. data/lua-hooks/ext/luajit/doc/ext_ffi_api.html +570 -0
  39. data/lua-hooks/ext/luajit/doc/ext_ffi_semantics.html +1261 -0
  40. data/lua-hooks/ext/luajit/doc/ext_ffi_tutorial.html +603 -0
  41. data/lua-hooks/ext/luajit/doc/ext_jit.html +201 -0
  42. data/lua-hooks/ext/luajit/doc/ext_profiler.html +365 -0
  43. data/lua-hooks/ext/luajit/doc/extensions.html +448 -0
  44. data/lua-hooks/ext/luajit/doc/faq.html +186 -0
  45. data/lua-hooks/ext/luajit/doc/img/contact.png +0 -0
  46. data/lua-hooks/ext/luajit/doc/install.html +659 -0
  47. data/lua-hooks/ext/luajit/doc/luajit.html +236 -0
  48. data/lua-hooks/ext/luajit/doc/running.html +309 -0
  49. data/lua-hooks/ext/luajit/doc/status.html +118 -0
  50. data/lua-hooks/ext/luajit/dynasm/dasm_arm.h +456 -0
  51. data/lua-hooks/ext/luajit/dynasm/dasm_arm.lua +1125 -0
  52. data/lua-hooks/ext/luajit/dynasm/dasm_arm64.h +518 -0
  53. data/lua-hooks/ext/luajit/dynasm/dasm_arm64.lua +1166 -0
  54. data/lua-hooks/ext/luajit/dynasm/dasm_mips.h +416 -0
  55. data/lua-hooks/ext/luajit/dynasm/dasm_mips.lua +953 -0
  56. data/lua-hooks/ext/luajit/dynasm/dasm_ppc.h +419 -0
  57. data/lua-hooks/ext/luajit/dynasm/dasm_ppc.lua +1919 -0
  58. data/lua-hooks/ext/luajit/dynasm/dasm_proto.h +83 -0
  59. data/lua-hooks/ext/luajit/dynasm/dasm_x64.lua +12 -0
  60. data/lua-hooks/ext/luajit/dynasm/dasm_x86.h +471 -0
  61. data/lua-hooks/ext/luajit/dynasm/dasm_x86.lua +1945 -0
  62. data/lua-hooks/ext/luajit/dynasm/dynasm.lua +1094 -0
  63. data/lua-hooks/ext/luajit/etc/luajit.1 +88 -0
  64. data/lua-hooks/ext/luajit/etc/luajit.pc +25 -0
  65. data/lua-hooks/ext/luajit/src/Makefile +697 -0
  66. data/lua-hooks/ext/luajit/src/Makefile.dep +244 -0
  67. data/lua-hooks/ext/luajit/src/host/README +4 -0
  68. data/lua-hooks/ext/luajit/src/host/buildvm +0 -0
  69. data/lua-hooks/ext/luajit/src/host/buildvm.c +518 -0
  70. data/lua-hooks/ext/luajit/src/host/buildvm.h +105 -0
  71. data/lua-hooks/ext/luajit/src/host/buildvm.o +0 -0
  72. data/lua-hooks/ext/luajit/src/host/buildvm_arch.h +7449 -0
  73. data/lua-hooks/ext/luajit/src/host/buildvm_asm.c +345 -0
  74. data/lua-hooks/ext/luajit/src/host/buildvm_asm.o +0 -0
  75. data/lua-hooks/ext/luajit/src/host/buildvm_fold.c +229 -0
  76. data/lua-hooks/ext/luajit/src/host/buildvm_fold.o +0 -0
  77. data/lua-hooks/ext/luajit/src/host/buildvm_lib.c +457 -0
  78. data/lua-hooks/ext/luajit/src/host/buildvm_lib.o +0 -0
  79. data/lua-hooks/ext/luajit/src/host/buildvm_libbc.h +45 -0
  80. data/lua-hooks/ext/luajit/src/host/buildvm_peobj.c +368 -0
  81. data/lua-hooks/ext/luajit/src/host/buildvm_peobj.o +0 -0
  82. data/lua-hooks/ext/luajit/src/host/genlibbc.lua +197 -0
  83. data/lua-hooks/ext/luajit/src/host/genminilua.lua +428 -0
  84. data/lua-hooks/ext/luajit/src/host/minilua +0 -0
  85. data/lua-hooks/ext/luajit/src/host/minilua.c +7770 -0
  86. data/lua-hooks/ext/luajit/src/host/minilua.o +0 -0
  87. data/lua-hooks/ext/luajit/src/jit/bc.lua +190 -0
  88. data/lua-hooks/ext/luajit/src/jit/bcsave.lua +661 -0
  89. data/lua-hooks/ext/luajit/src/jit/dis_arm.lua +689 -0
  90. data/lua-hooks/ext/luajit/src/jit/dis_mips.lua +428 -0
  91. data/lua-hooks/ext/luajit/src/jit/dis_mipsel.lua +17 -0
  92. data/lua-hooks/ext/luajit/src/jit/dis_ppc.lua +591 -0
  93. data/lua-hooks/ext/luajit/src/jit/dis_x64.lua +17 -0
  94. data/lua-hooks/ext/luajit/src/jit/dis_x86.lua +838 -0
  95. data/lua-hooks/ext/luajit/src/jit/dump.lua +706 -0
  96. data/lua-hooks/ext/luajit/src/jit/p.lua +310 -0
  97. data/lua-hooks/ext/luajit/src/jit/v.lua +170 -0
  98. data/lua-hooks/ext/luajit/src/jit/vmdef.lua +362 -0
  99. data/lua-hooks/ext/luajit/src/jit/zone.lua +45 -0
  100. data/lua-hooks/ext/{lua → luajit/src}/lauxlib.h +10 -17
  101. data/lua-hooks/ext/luajit/src/lib_aux.c +356 -0
  102. data/lua-hooks/ext/luajit/src/lib_aux.o +0 -0
  103. data/lua-hooks/ext/luajit/src/lib_aux_dyn.o +0 -0
  104. data/lua-hooks/ext/luajit/src/lib_base.c +664 -0
  105. data/lua-hooks/ext/luajit/src/lib_base.o +0 -0
  106. data/lua-hooks/ext/luajit/src/lib_base_dyn.o +0 -0
  107. data/lua-hooks/ext/luajit/src/lib_bit.c +180 -0
  108. data/lua-hooks/ext/luajit/src/lib_bit.o +0 -0
  109. data/lua-hooks/ext/luajit/src/lib_bit_dyn.o +0 -0
  110. data/lua-hooks/ext/luajit/src/lib_debug.c +405 -0
  111. data/lua-hooks/ext/luajit/src/lib_debug.o +0 -0
  112. data/lua-hooks/ext/luajit/src/lib_debug_dyn.o +0 -0
  113. data/lua-hooks/ext/luajit/src/lib_ffi.c +872 -0
  114. data/lua-hooks/ext/luajit/src/lib_ffi.o +0 -0
  115. data/lua-hooks/ext/luajit/src/lib_ffi_dyn.o +0 -0
  116. data/lua-hooks/ext/luajit/src/lib_init.c +55 -0
  117. data/lua-hooks/ext/luajit/src/lib_init.o +0 -0
  118. data/lua-hooks/ext/luajit/src/lib_init_dyn.o +0 -0
  119. data/lua-hooks/ext/luajit/src/lib_io.c +541 -0
  120. data/lua-hooks/ext/luajit/src/lib_io.o +0 -0
  121. data/lua-hooks/ext/luajit/src/lib_io_dyn.o +0 -0
  122. data/lua-hooks/ext/luajit/src/lib_jit.c +767 -0
  123. data/lua-hooks/ext/luajit/src/lib_jit.o +0 -0
  124. data/lua-hooks/ext/luajit/src/lib_jit_dyn.o +0 -0
  125. data/lua-hooks/ext/luajit/src/lib_math.c +230 -0
  126. data/lua-hooks/ext/luajit/src/lib_math.o +0 -0
  127. data/lua-hooks/ext/luajit/src/lib_math_dyn.o +0 -0
  128. data/lua-hooks/ext/luajit/src/lib_os.c +292 -0
  129. data/lua-hooks/ext/luajit/src/lib_os.o +0 -0
  130. data/lua-hooks/ext/luajit/src/lib_os_dyn.o +0 -0
  131. data/lua-hooks/ext/luajit/src/lib_package.c +610 -0
  132. data/lua-hooks/ext/luajit/src/lib_package.o +0 -0
  133. data/lua-hooks/ext/luajit/src/lib_package_dyn.o +0 -0
  134. data/lua-hooks/ext/luajit/src/lib_string.c +752 -0
  135. data/lua-hooks/ext/luajit/src/lib_string.o +0 -0
  136. data/lua-hooks/ext/luajit/src/lib_string_dyn.o +0 -0
  137. data/lua-hooks/ext/luajit/src/lib_table.c +307 -0
  138. data/lua-hooks/ext/luajit/src/lib_table.o +0 -0
  139. data/lua-hooks/ext/luajit/src/lib_table_dyn.o +0 -0
  140. data/lua-hooks/ext/luajit/src/libluajit.a +0 -0
  141. data/lua-hooks/ext/luajit/src/libluajit.so +0 -0
  142. data/lua-hooks/ext/luajit/src/lj.supp +26 -0
  143. data/lua-hooks/ext/luajit/src/lj_alloc.c +1398 -0
  144. data/lua-hooks/ext/luajit/src/lj_alloc.h +17 -0
  145. data/lua-hooks/ext/luajit/src/lj_alloc.o +0 -0
  146. data/lua-hooks/ext/luajit/src/lj_alloc_dyn.o +0 -0
  147. data/lua-hooks/ext/luajit/src/lj_api.c +1210 -0
  148. data/lua-hooks/ext/luajit/src/lj_api.o +0 -0
  149. data/lua-hooks/ext/luajit/src/lj_api_dyn.o +0 -0
  150. data/lua-hooks/ext/luajit/src/lj_arch.h +509 -0
  151. data/lua-hooks/ext/luajit/src/lj_asm.c +2278 -0
  152. data/lua-hooks/ext/luajit/src/lj_asm.h +17 -0
  153. data/lua-hooks/ext/luajit/src/lj_asm.o +0 -0
  154. data/lua-hooks/ext/luajit/src/lj_asm_arm.h +2217 -0
  155. data/lua-hooks/ext/luajit/src/lj_asm_dyn.o +0 -0
  156. data/lua-hooks/ext/luajit/src/lj_asm_mips.h +1833 -0
  157. data/lua-hooks/ext/luajit/src/lj_asm_ppc.h +2015 -0
  158. data/lua-hooks/ext/luajit/src/lj_asm_x86.h +2634 -0
  159. data/lua-hooks/ext/luajit/src/lj_bc.c +14 -0
  160. data/lua-hooks/ext/luajit/src/lj_bc.h +265 -0
  161. data/lua-hooks/ext/luajit/src/lj_bc.o +0 -0
  162. data/lua-hooks/ext/luajit/src/lj_bc_dyn.o +0 -0
  163. data/lua-hooks/ext/luajit/src/lj_bcdef.h +220 -0
  164. data/lua-hooks/ext/luajit/src/lj_bcdump.h +68 -0
  165. data/lua-hooks/ext/luajit/src/lj_bcread.c +457 -0
  166. data/lua-hooks/ext/luajit/src/lj_bcread.o +0 -0
  167. data/lua-hooks/ext/luajit/src/lj_bcread_dyn.o +0 -0
  168. data/lua-hooks/ext/luajit/src/lj_bcwrite.c +361 -0
  169. data/lua-hooks/ext/luajit/src/lj_bcwrite.o +0 -0
  170. data/lua-hooks/ext/luajit/src/lj_bcwrite_dyn.o +0 -0
  171. data/lua-hooks/ext/luajit/src/lj_buf.c +234 -0
  172. data/lua-hooks/ext/luajit/src/lj_buf.h +105 -0
  173. data/lua-hooks/ext/luajit/src/lj_buf.o +0 -0
  174. data/lua-hooks/ext/luajit/src/lj_buf_dyn.o +0 -0
  175. data/lua-hooks/ext/luajit/src/lj_carith.c +429 -0
  176. data/lua-hooks/ext/luajit/src/lj_carith.h +37 -0
  177. data/lua-hooks/ext/luajit/src/lj_carith.o +0 -0
  178. data/lua-hooks/ext/luajit/src/lj_carith_dyn.o +0 -0
  179. data/lua-hooks/ext/luajit/src/lj_ccall.c +984 -0
  180. data/lua-hooks/ext/luajit/src/lj_ccall.h +178 -0
  181. data/lua-hooks/ext/luajit/src/lj_ccall.o +0 -0
  182. data/lua-hooks/ext/luajit/src/lj_ccall_dyn.o +0 -0
  183. data/lua-hooks/ext/luajit/src/lj_ccallback.c +712 -0
  184. data/lua-hooks/ext/luajit/src/lj_ccallback.h +25 -0
  185. data/lua-hooks/ext/luajit/src/lj_ccallback.o +0 -0
  186. data/lua-hooks/ext/luajit/src/lj_ccallback_dyn.o +0 -0
  187. data/lua-hooks/ext/luajit/src/lj_cconv.c +752 -0
  188. data/lua-hooks/ext/luajit/src/lj_cconv.h +70 -0
  189. data/lua-hooks/ext/luajit/src/lj_cconv.o +0 -0
  190. data/lua-hooks/ext/luajit/src/lj_cconv_dyn.o +0 -0
  191. data/lua-hooks/ext/luajit/src/lj_cdata.c +288 -0
  192. data/lua-hooks/ext/luajit/src/lj_cdata.h +76 -0
  193. data/lua-hooks/ext/luajit/src/lj_cdata.o +0 -0
  194. data/lua-hooks/ext/luajit/src/lj_cdata_dyn.o +0 -0
  195. data/lua-hooks/ext/luajit/src/lj_char.c +43 -0
  196. data/lua-hooks/ext/luajit/src/lj_char.h +42 -0
  197. data/lua-hooks/ext/luajit/src/lj_char.o +0 -0
  198. data/lua-hooks/ext/luajit/src/lj_char_dyn.o +0 -0
  199. data/lua-hooks/ext/luajit/src/lj_clib.c +418 -0
  200. data/lua-hooks/ext/luajit/src/lj_clib.h +29 -0
  201. data/lua-hooks/ext/luajit/src/lj_clib.o +0 -0
  202. data/lua-hooks/ext/luajit/src/lj_clib_dyn.o +0 -0
  203. data/lua-hooks/ext/luajit/src/lj_cparse.c +1862 -0
  204. data/lua-hooks/ext/luajit/src/lj_cparse.h +65 -0
  205. data/lua-hooks/ext/luajit/src/lj_cparse.o +0 -0
  206. data/lua-hooks/ext/luajit/src/lj_cparse_dyn.o +0 -0
  207. data/lua-hooks/ext/luajit/src/lj_crecord.c +1834 -0
  208. data/lua-hooks/ext/luajit/src/lj_crecord.h +38 -0
  209. data/lua-hooks/ext/luajit/src/lj_crecord.o +0 -0
  210. data/lua-hooks/ext/luajit/src/lj_crecord_dyn.o +0 -0
  211. data/lua-hooks/ext/luajit/src/lj_ctype.c +635 -0
  212. data/lua-hooks/ext/luajit/src/lj_ctype.h +461 -0
  213. data/lua-hooks/ext/luajit/src/lj_ctype.o +0 -0
  214. data/lua-hooks/ext/luajit/src/lj_ctype_dyn.o +0 -0
  215. data/lua-hooks/ext/luajit/src/lj_debug.c +699 -0
  216. data/lua-hooks/ext/luajit/src/lj_debug.h +65 -0
  217. data/lua-hooks/ext/luajit/src/lj_debug.o +0 -0
  218. data/lua-hooks/ext/luajit/src/lj_debug_dyn.o +0 -0
  219. data/lua-hooks/ext/luajit/src/lj_def.h +365 -0
  220. data/lua-hooks/ext/luajit/src/lj_dispatch.c +557 -0
  221. data/lua-hooks/ext/luajit/src/lj_dispatch.h +138 -0
  222. data/lua-hooks/ext/luajit/src/lj_dispatch.o +0 -0
  223. data/lua-hooks/ext/luajit/src/lj_dispatch_dyn.o +0 -0
  224. data/lua-hooks/ext/luajit/src/lj_emit_arm.h +356 -0
  225. data/lua-hooks/ext/luajit/src/lj_emit_mips.h +211 -0
  226. data/lua-hooks/ext/luajit/src/lj_emit_ppc.h +238 -0
  227. data/lua-hooks/ext/luajit/src/lj_emit_x86.h +462 -0
  228. data/lua-hooks/ext/luajit/src/lj_err.c +794 -0
  229. data/lua-hooks/ext/luajit/src/lj_err.h +41 -0
  230. data/lua-hooks/ext/luajit/src/lj_err.o +0 -0
  231. data/lua-hooks/ext/luajit/src/lj_err_dyn.o +0 -0
  232. data/lua-hooks/ext/luajit/src/lj_errmsg.h +190 -0
  233. data/lua-hooks/ext/luajit/src/lj_ff.h +18 -0
  234. data/lua-hooks/ext/luajit/src/lj_ffdef.h +209 -0
  235. data/lua-hooks/ext/luajit/src/lj_ffrecord.c +1247 -0
  236. data/lua-hooks/ext/luajit/src/lj_ffrecord.h +24 -0
  237. data/lua-hooks/ext/luajit/src/lj_ffrecord.o +0 -0
  238. data/lua-hooks/ext/luajit/src/lj_ffrecord_dyn.o +0 -0
  239. data/lua-hooks/ext/luajit/src/lj_folddef.h +1138 -0
  240. data/lua-hooks/ext/luajit/src/lj_frame.h +259 -0
  241. data/lua-hooks/ext/luajit/src/lj_func.c +185 -0
  242. data/lua-hooks/ext/luajit/src/lj_func.h +24 -0
  243. data/lua-hooks/ext/luajit/src/lj_func.o +0 -0
  244. data/lua-hooks/ext/luajit/src/lj_func_dyn.o +0 -0
  245. data/lua-hooks/ext/luajit/src/lj_gc.c +845 -0
  246. data/lua-hooks/ext/luajit/src/lj_gc.h +134 -0
  247. data/lua-hooks/ext/luajit/src/lj_gc.o +0 -0
  248. data/lua-hooks/ext/luajit/src/lj_gc_dyn.o +0 -0
  249. data/lua-hooks/ext/luajit/src/lj_gdbjit.c +787 -0
  250. data/lua-hooks/ext/luajit/src/lj_gdbjit.h +22 -0
  251. data/lua-hooks/ext/luajit/src/lj_gdbjit.o +0 -0
  252. data/lua-hooks/ext/luajit/src/lj_gdbjit_dyn.o +0 -0
  253. data/lua-hooks/ext/luajit/src/lj_ir.c +505 -0
  254. data/lua-hooks/ext/luajit/src/lj_ir.h +577 -0
  255. data/lua-hooks/ext/luajit/src/lj_ir.o +0 -0
  256. data/lua-hooks/ext/luajit/src/lj_ir_dyn.o +0 -0
  257. data/lua-hooks/ext/luajit/src/lj_ircall.h +321 -0
  258. data/lua-hooks/ext/luajit/src/lj_iropt.h +161 -0
  259. data/lua-hooks/ext/luajit/src/lj_jit.h +440 -0
  260. data/lua-hooks/ext/luajit/src/lj_lex.c +482 -0
  261. data/lua-hooks/ext/luajit/src/lj_lex.h +86 -0
  262. data/lua-hooks/ext/luajit/src/lj_lex.o +0 -0
  263. data/lua-hooks/ext/luajit/src/lj_lex_dyn.o +0 -0
  264. data/lua-hooks/ext/luajit/src/lj_lib.c +303 -0
  265. data/lua-hooks/ext/luajit/src/lj_lib.h +115 -0
  266. data/lua-hooks/ext/luajit/src/lj_lib.o +0 -0
  267. data/lua-hooks/ext/luajit/src/lj_lib_dyn.o +0 -0
  268. data/lua-hooks/ext/luajit/src/lj_libdef.h +414 -0
  269. data/lua-hooks/ext/luajit/src/lj_load.c +168 -0
  270. data/lua-hooks/ext/luajit/src/lj_load.o +0 -0
  271. data/lua-hooks/ext/luajit/src/lj_load_dyn.o +0 -0
  272. data/lua-hooks/ext/luajit/src/lj_mcode.c +386 -0
  273. data/lua-hooks/ext/luajit/src/lj_mcode.h +30 -0
  274. data/lua-hooks/ext/luajit/src/lj_mcode.o +0 -0
  275. data/lua-hooks/ext/luajit/src/lj_mcode_dyn.o +0 -0
  276. data/lua-hooks/ext/luajit/src/lj_meta.c +477 -0
  277. data/lua-hooks/ext/luajit/src/lj_meta.h +38 -0
  278. data/lua-hooks/ext/luajit/src/lj_meta.o +0 -0
  279. data/lua-hooks/ext/luajit/src/lj_meta_dyn.o +0 -0
  280. data/lua-hooks/ext/luajit/src/lj_obj.c +50 -0
  281. data/lua-hooks/ext/luajit/src/lj_obj.h +976 -0
  282. data/lua-hooks/ext/luajit/src/lj_obj.o +0 -0
  283. data/lua-hooks/ext/luajit/src/lj_obj_dyn.o +0 -0
  284. data/lua-hooks/ext/luajit/src/lj_opt_dce.c +78 -0
  285. data/lua-hooks/ext/luajit/src/lj_opt_dce.o +0 -0
  286. data/lua-hooks/ext/luajit/src/lj_opt_dce_dyn.o +0 -0
  287. data/lua-hooks/ext/luajit/src/lj_opt_fold.c +2488 -0
  288. data/lua-hooks/ext/luajit/src/lj_opt_fold.o +0 -0
  289. data/lua-hooks/ext/luajit/src/lj_opt_fold_dyn.o +0 -0
  290. data/lua-hooks/ext/luajit/src/lj_opt_loop.c +449 -0
  291. data/lua-hooks/ext/luajit/src/lj_opt_loop.o +0 -0
  292. data/lua-hooks/ext/luajit/src/lj_opt_loop_dyn.o +0 -0
  293. data/lua-hooks/ext/luajit/src/lj_opt_mem.c +935 -0
  294. data/lua-hooks/ext/luajit/src/lj_opt_mem.o +0 -0
  295. data/lua-hooks/ext/luajit/src/lj_opt_mem_dyn.o +0 -0
  296. data/lua-hooks/ext/luajit/src/lj_opt_narrow.c +652 -0
  297. data/lua-hooks/ext/luajit/src/lj_opt_narrow.o +0 -0
  298. data/lua-hooks/ext/luajit/src/lj_opt_narrow_dyn.o +0 -0
  299. data/lua-hooks/ext/luajit/src/lj_opt_sink.c +245 -0
  300. data/lua-hooks/ext/luajit/src/lj_opt_sink.o +0 -0
  301. data/lua-hooks/ext/luajit/src/lj_opt_sink_dyn.o +0 -0
  302. data/lua-hooks/ext/luajit/src/lj_opt_split.c +856 -0
  303. data/lua-hooks/ext/luajit/src/lj_opt_split.o +0 -0
  304. data/lua-hooks/ext/luajit/src/lj_opt_split_dyn.o +0 -0
  305. data/lua-hooks/ext/luajit/src/lj_parse.c +2725 -0
  306. data/lua-hooks/ext/luajit/src/lj_parse.h +18 -0
  307. data/lua-hooks/ext/luajit/src/lj_parse.o +0 -0
  308. data/lua-hooks/ext/luajit/src/lj_parse_dyn.o +0 -0
  309. data/lua-hooks/ext/luajit/src/lj_profile.c +368 -0
  310. data/lua-hooks/ext/luajit/src/lj_profile.h +21 -0
  311. data/lua-hooks/ext/luajit/src/lj_profile.o +0 -0
  312. data/lua-hooks/ext/luajit/src/lj_profile_dyn.o +0 -0
  313. data/lua-hooks/ext/luajit/src/lj_recdef.h +270 -0
  314. data/lua-hooks/ext/luajit/src/lj_record.c +2554 -0
  315. data/lua-hooks/ext/luajit/src/lj_record.h +45 -0
  316. data/lua-hooks/ext/luajit/src/lj_record.o +0 -0
  317. data/lua-hooks/ext/luajit/src/lj_record_dyn.o +0 -0
  318. data/lua-hooks/ext/luajit/src/lj_snap.c +870 -0
  319. data/lua-hooks/ext/luajit/src/lj_snap.h +34 -0
  320. data/lua-hooks/ext/luajit/src/lj_snap.o +0 -0
  321. data/lua-hooks/ext/luajit/src/lj_snap_dyn.o +0 -0
  322. data/lua-hooks/ext/luajit/src/lj_state.c +300 -0
  323. data/lua-hooks/ext/luajit/src/lj_state.h +35 -0
  324. data/lua-hooks/ext/luajit/src/lj_state.o +0 -0
  325. data/lua-hooks/ext/luajit/src/lj_state_dyn.o +0 -0
  326. data/lua-hooks/ext/luajit/src/lj_str.c +197 -0
  327. data/lua-hooks/ext/luajit/src/lj_str.h +27 -0
  328. data/lua-hooks/ext/luajit/src/lj_str.o +0 -0
  329. data/lua-hooks/ext/luajit/src/lj_str_dyn.o +0 -0
  330. data/lua-hooks/ext/luajit/src/lj_strfmt.c +554 -0
  331. data/lua-hooks/ext/luajit/src/lj_strfmt.h +125 -0
  332. data/lua-hooks/ext/luajit/src/lj_strfmt.o +0 -0
  333. data/lua-hooks/ext/luajit/src/lj_strfmt_dyn.o +0 -0
  334. data/lua-hooks/ext/luajit/src/lj_strscan.c +547 -0
  335. data/lua-hooks/ext/luajit/src/lj_strscan.h +39 -0
  336. data/lua-hooks/ext/luajit/src/lj_strscan.o +0 -0
  337. data/lua-hooks/ext/luajit/src/lj_strscan_dyn.o +0 -0
  338. data/lua-hooks/ext/luajit/src/lj_tab.c +666 -0
  339. data/lua-hooks/ext/luajit/src/lj_tab.h +73 -0
  340. data/lua-hooks/ext/luajit/src/lj_tab.o +0 -0
  341. data/lua-hooks/ext/luajit/src/lj_tab_dyn.o +0 -0
  342. data/lua-hooks/ext/luajit/src/lj_target.h +164 -0
  343. data/lua-hooks/ext/luajit/src/lj_target_arm.h +270 -0
  344. data/lua-hooks/ext/luajit/src/lj_target_arm64.h +97 -0
  345. data/lua-hooks/ext/luajit/src/lj_target_mips.h +260 -0
  346. data/lua-hooks/ext/luajit/src/lj_target_ppc.h +280 -0
  347. data/lua-hooks/ext/luajit/src/lj_target_x86.h +345 -0
  348. data/lua-hooks/ext/luajit/src/lj_trace.c +859 -0
  349. data/lua-hooks/ext/luajit/src/lj_trace.h +54 -0
  350. data/lua-hooks/ext/luajit/src/lj_trace.o +0 -0
  351. data/lua-hooks/ext/luajit/src/lj_trace_dyn.o +0 -0
  352. data/lua-hooks/ext/luajit/src/lj_traceerr.h +63 -0
  353. data/lua-hooks/ext/luajit/src/lj_udata.c +34 -0
  354. data/lua-hooks/ext/luajit/src/lj_udata.h +14 -0
  355. data/lua-hooks/ext/luajit/src/lj_udata.o +0 -0
  356. data/lua-hooks/ext/luajit/src/lj_udata_dyn.o +0 -0
  357. data/lua-hooks/ext/luajit/src/lj_vm.S +2730 -0
  358. data/lua-hooks/ext/luajit/src/lj_vm.h +114 -0
  359. data/lua-hooks/ext/luajit/src/lj_vm.o +0 -0
  360. data/lua-hooks/ext/luajit/src/lj_vm_dyn.o +0 -0
  361. data/lua-hooks/ext/luajit/src/lj_vmevent.c +58 -0
  362. data/lua-hooks/ext/luajit/src/lj_vmevent.h +59 -0
  363. data/lua-hooks/ext/luajit/src/lj_vmevent.o +0 -0
  364. data/lua-hooks/ext/luajit/src/lj_vmevent_dyn.o +0 -0
  365. data/lua-hooks/ext/luajit/src/lj_vmmath.c +152 -0
  366. data/lua-hooks/ext/luajit/src/lj_vmmath.o +0 -0
  367. data/lua-hooks/ext/luajit/src/lj_vmmath_dyn.o +0 -0
  368. data/lua-hooks/ext/luajit/src/ljamalg.c +96 -0
  369. data/lua-hooks/ext/{lua → luajit/src}/lua.h +12 -7
  370. data/lua-hooks/ext/luajit/src/lua.hpp +9 -0
  371. data/lua-hooks/ext/luajit/src/luaconf.h +156 -0
  372. data/lua-hooks/ext/luajit/src/luajit +0 -0
  373. data/lua-hooks/ext/luajit/src/luajit.c +570 -0
  374. data/lua-hooks/ext/luajit/src/luajit.h +79 -0
  375. data/lua-hooks/ext/luajit/src/luajit.o +0 -0
  376. data/lua-hooks/ext/luajit/src/lualib.h +43 -0
  377. data/lua-hooks/ext/luajit/src/msvcbuild.bat +114 -0
  378. data/lua-hooks/ext/luajit/src/ps4build.bat +103 -0
  379. data/lua-hooks/ext/luajit/src/psvitabuild.bat +93 -0
  380. data/lua-hooks/ext/luajit/src/vm_arm.dasc +4585 -0
  381. data/lua-hooks/ext/luajit/src/vm_arm64.dasc +3764 -0
  382. data/lua-hooks/ext/luajit/src/vm_mips.dasc +4355 -0
  383. data/lua-hooks/ext/luajit/src/vm_ppc.dasc +5252 -0
  384. data/lua-hooks/ext/luajit/src/vm_x64.dasc +4902 -0
  385. data/lua-hooks/ext/luajit/src/vm_x86.dasc +5710 -0
  386. data/lua-hooks/ext/luajit/src/xb1build.bat +101 -0
  387. data/lua-hooks/ext/luajit/src/xedkbuild.bat +92 -0
  388. data/lua-hooks/ext/luautf8/lutf8lib.c +3 -3
  389. data/lua-hooks/lib/boot.lua +37 -2
  390. metadata +372 -69
  391. data/lua-hooks/ext/bitop/README +0 -22
  392. data/lua-hooks/ext/bitop/bit.c +0 -189
  393. data/lua-hooks/ext/extconf.rb +0 -38
  394. data/lua-hooks/ext/lua/COPYRIGHT +0 -34
  395. data/lua-hooks/ext/lua/lapi.c +0 -1087
  396. data/lua-hooks/ext/lua/lapi.h +0 -16
  397. data/lua-hooks/ext/lua/lauxlib.c +0 -652
  398. data/lua-hooks/ext/lua/lbaselib.c +0 -659
  399. data/lua-hooks/ext/lua/lcode.c +0 -831
  400. data/lua-hooks/ext/lua/lcode.h +0 -76
  401. data/lua-hooks/ext/lua/ldblib.c +0 -398
  402. data/lua-hooks/ext/lua/ldebug.c +0 -638
  403. data/lua-hooks/ext/lua/ldebug.h +0 -33
  404. data/lua-hooks/ext/lua/ldo.c +0 -519
  405. data/lua-hooks/ext/lua/ldo.h +0 -57
  406. data/lua-hooks/ext/lua/ldump.c +0 -164
  407. data/lua-hooks/ext/lua/lfunc.c +0 -174
  408. data/lua-hooks/ext/lua/lfunc.h +0 -34
  409. data/lua-hooks/ext/lua/lgc.c +0 -710
  410. data/lua-hooks/ext/lua/lgc.h +0 -110
  411. data/lua-hooks/ext/lua/linit.c +0 -38
  412. data/lua-hooks/ext/lua/liolib.c +0 -556
  413. data/lua-hooks/ext/lua/llex.c +0 -463
  414. data/lua-hooks/ext/lua/llex.h +0 -81
  415. data/lua-hooks/ext/lua/llimits.h +0 -128
  416. data/lua-hooks/ext/lua/lmathlib.c +0 -263
  417. data/lua-hooks/ext/lua/lmem.c +0 -86
  418. data/lua-hooks/ext/lua/lmem.h +0 -49
  419. data/lua-hooks/ext/lua/loadlib.c +0 -705
  420. data/lua-hooks/ext/lua/loadlib_rel.c +0 -760
  421. data/lua-hooks/ext/lua/lobject.c +0 -214
  422. data/lua-hooks/ext/lua/lobject.h +0 -381
  423. data/lua-hooks/ext/lua/lopcodes.c +0 -102
  424. data/lua-hooks/ext/lua/lopcodes.h +0 -268
  425. data/lua-hooks/ext/lua/loslib.c +0 -243
  426. data/lua-hooks/ext/lua/lparser.c +0 -1339
  427. data/lua-hooks/ext/lua/lparser.h +0 -82
  428. data/lua-hooks/ext/lua/lstate.c +0 -214
  429. data/lua-hooks/ext/lua/lstate.h +0 -169
  430. data/lua-hooks/ext/lua/lstring.c +0 -111
  431. data/lua-hooks/ext/lua/lstring.h +0 -31
  432. data/lua-hooks/ext/lua/lstrlib.c +0 -871
  433. data/lua-hooks/ext/lua/ltable.c +0 -588
  434. data/lua-hooks/ext/lua/ltable.h +0 -40
  435. data/lua-hooks/ext/lua/ltablib.c +0 -287
  436. data/lua-hooks/ext/lua/ltm.c +0 -75
  437. data/lua-hooks/ext/lua/ltm.h +0 -54
  438. data/lua-hooks/ext/lua/lua.c +0 -392
  439. data/lua-hooks/ext/lua/lua.def +0 -131
  440. data/lua-hooks/ext/lua/lua.rc +0 -28
  441. data/lua-hooks/ext/lua/lua_dll.rc +0 -26
  442. data/lua-hooks/ext/lua/luac.c +0 -200
  443. data/lua-hooks/ext/lua/luac.rc +0 -1
  444. data/lua-hooks/ext/lua/luaconf.h +0 -763
  445. data/lua-hooks/ext/lua/luaconf.h.in +0 -724
  446. data/lua-hooks/ext/lua/luaconf.h.orig +0 -763
  447. data/lua-hooks/ext/lua/lualib.h +0 -53
  448. data/lua-hooks/ext/lua/lundump.c +0 -227
  449. data/lua-hooks/ext/lua/lundump.h +0 -36
  450. data/lua-hooks/ext/lua/lvm.c +0 -767
  451. data/lua-hooks/ext/lua/lvm.h +0 -36
  452. data/lua-hooks/ext/lua/lzio.c +0 -82
  453. data/lua-hooks/ext/lua/lzio.h +0 -67
  454. data/lua-hooks/ext/lua/print.c +0 -227
@@ -0,0 +1,88 @@
1
+ .TH luajit 1 "" "" "LuaJIT documentation"
2
+ .SH NAME
3
+ luajit \- Just-In-Time Compiler for the Lua Language
4
+ \fB
5
+ .SH SYNOPSIS
6
+ .B luajit
7
+ [\fIoptions\fR]... [\fIscript\fR [\fIargs\fR]...]
8
+ .SH "WEB SITE"
9
+ .IR http://luajit.org
10
+ .SH DESCRIPTION
11
+ .PP
12
+ This is the command-line program to run Lua programs with \fBLuaJIT\fR.
13
+ .PP
14
+ \fBLuaJIT\fR is a just-in-time (JIT) compiler for the Lua language.
15
+ The virtual machine (VM) is based on a fast interpreter combined with
16
+ a trace compiler. It can significantly improve the performance of Lua programs.
17
+ .PP
18
+ \fBLuaJIT\fR is API\- and ABI-compatible with the VM of the standard
19
+ Lua\ 5.1 interpreter. When embedding the VM into an application,
20
+ the built library can be used as a drop-in replacement.
21
+ .SH OPTIONS
22
+ .TP
23
+ .BI "\-e " chunk
24
+ Run the given chunk of Lua code.
25
+ .TP
26
+ .BI "\-l " library
27
+ Load the named library, just like \fBrequire("\fR\fIlibrary\fR\fB")\fR.
28
+ .TP
29
+ .BI "\-b " ...
30
+ Save or list bytecode. Run without arguments to get help on options.
31
+ .TP
32
+ .BI "\-j " command
33
+ Perform LuaJIT control command (optional space after \fB\-j\fR).
34
+ .TP
35
+ .BI "\-O" [opt]
36
+ Control LuaJIT optimizations.
37
+ .TP
38
+ .B "\-i"
39
+ Run in interactive mode.
40
+ .TP
41
+ .B "\-v"
42
+ Show \fBLuaJIT\fR version.
43
+ .TP
44
+ .B "\-E"
45
+ Ignore environment variables.
46
+ .TP
47
+ .B "\-\-"
48
+ Stop processing options.
49
+ .TP
50
+ .B "\-"
51
+ Read script from stdin instead.
52
+ .PP
53
+ After all options are processed, the given \fIscript\fR is run.
54
+ The arguments are passed in the global \fIarg\fR table.
55
+ .PP
56
+ Interactive mode is only entered, if no \fIscript\fR and no \fB\-e\fR
57
+ option is given. Interactive mode can be left with EOF (\fICtrl\-Z\fB).
58
+ .SH EXAMPLES
59
+ .TP
60
+ luajit hello.lua world
61
+
62
+ Prints "Hello world", assuming \fIhello.lua\fR contains:
63
+ .br
64
+ print("Hello", arg[1])
65
+ .TP
66
+ luajit \-e "local x=0; for i=1,1e9 do x=x+i end; print(x)"
67
+
68
+ Calculates the sum of the numbers from 1 to 1000000000.
69
+ .br
70
+ And finishes in a reasonable amount of time, too.
71
+ .TP
72
+ luajit \-jv \-e "for i=1,10 do for j=1,10 do for k=1,100 do end end end"
73
+
74
+ Runs some nested loops and shows the resulting traces.
75
+ .SH COPYRIGHT
76
+ .PP
77
+ \fBLuaJIT\fR is Copyright \(co 2005-2015 Mike Pall.
78
+ .br
79
+ \fBLuaJIT\fR is open source software, released under the MIT license.
80
+ .SH SEE ALSO
81
+ .PP
82
+ More details in the provided HTML docs or at:
83
+ .IR http://luajit.org
84
+ .br
85
+ More about the Lua language can be found at:
86
+ .IR http://lua.org/docs.html
87
+ .PP
88
+ lua(1)
@@ -0,0 +1,25 @@
1
+ # Package information for LuaJIT to be used by pkg-config.
2
+ majver=2
3
+ minver=1
4
+ relver=0
5
+ version=${majver}.${minver}.${relver}-beta1
6
+ abiver=5.1
7
+
8
+ prefix=/usr/local
9
+ multilib=lib
10
+ exec_prefix=${prefix}
11
+ libdir=${exec_prefix}/${multilib}
12
+ libname=luajit-${abiver}
13
+ includedir=${prefix}/include/luajit-${majver}.${minver}
14
+
15
+ INSTALL_LMOD=${prefix}/share/lua/${abiver}
16
+ INSTALL_CMOD=${prefix}/${multilib}/lua/${abiver}
17
+
18
+ Name: LuaJIT
19
+ Description: Just-in-time compiler for Lua
20
+ URL: http://luajit.org
21
+ Version: ${version}
22
+ Requires:
23
+ Libs: -L${libdir} -l${libname}
24
+ Libs.private: -Wl,-E -lm -ldl
25
+ Cflags: -I${includedir}
@@ -0,0 +1,697 @@
1
+ ##############################################################################
2
+ # LuaJIT Makefile. Requires GNU Make.
3
+ #
4
+ # Please read doc/install.html before changing any variables!
5
+ #
6
+ # Suitable for POSIX platforms (Linux, *BSD, OSX etc.).
7
+ # Also works with MinGW and Cygwin on Windows.
8
+ # Please check msvcbuild.bat for building with MSVC on Windows.
9
+ #
10
+ # Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
11
+ ##############################################################################
12
+
13
+ MAJVER= 2
14
+ MINVER= 1
15
+ RELVER= 0
16
+ ABIVER= 5.1
17
+ NODOTABIVER= 51
18
+
19
+ ##############################################################################
20
+ ############################# COMPILER OPTIONS #############################
21
+ ##############################################################################
22
+ # These options mainly affect the speed of the JIT compiler itself, not the
23
+ # speed of the JIT-compiled code. Turn any of the optional settings on by
24
+ # removing the '#' in front of them. Make sure you force a full recompile
25
+ # with "make clean", followed by "make" if you change any options.
26
+ #
27
+ # LuaJIT builds as a native 32 or 64 bit binary by default.
28
+ CC= gcc
29
+ #
30
+ # Use this if you want to force a 32 bit build on a 64 bit multilib OS.
31
+ #CC= gcc -m32
32
+ #
33
+ # Since the assembler part does NOT maintain a frame pointer, it's pointless
34
+ # to slow down the C part by not omitting it. Debugging, tracebacks and
35
+ # unwinding are not affected -- the assembler part has frame unwind
36
+ # information and GCC emits it where needed (x64) or with -g (see CCDEBUG).
37
+ CCOPT= -O2 -fomit-frame-pointer
38
+ # Use this if you want to generate a smaller binary (but it's slower):
39
+ #CCOPT= -Os -fomit-frame-pointer
40
+ # Note: it's no longer recommended to use -O3 with GCC 4.x.
41
+ # The I-Cache bloat usually outweighs the benefits from aggressive inlining.
42
+ #
43
+ # Target-specific compiler options:
44
+ #
45
+ # x86/x64 only: For GCC 4.2 or higher and if you don't intend to distribute
46
+ # the binaries to a different machine you could also use: -march=native
47
+ #
48
+ CCOPT_x86= -march=i686 -msse -msse2 -mfpmath=sse
49
+ CCOPT_x64=
50
+ CCOPT_arm=
51
+ CCOPT_arm64=
52
+ CCOPT_ppc=
53
+ CCOPT_mips=
54
+ #
55
+ CCDEBUG=
56
+ # Uncomment the next line to generate debug information:
57
+ #CCDEBUG= -g
58
+ #
59
+ CCWARN= -Wall
60
+ # Uncomment the next line to enable more warnings:
61
+ #CCWARN+= -Wextra -Wdeclaration-after-statement -Wredundant-decls -Wshadow -Wpointer-arith
62
+ #
63
+ ##############################################################################
64
+
65
+ ##############################################################################
66
+ ################################ BUILD MODE ################################
67
+ ##############################################################################
68
+ # The default build mode is mixed mode on POSIX. On Windows this is the same
69
+ # as dynamic mode.
70
+ #
71
+ # Mixed mode creates a static + dynamic library and a statically linked luajit.
72
+ BUILDMODE= mixed
73
+ #
74
+ # Static mode creates a static library and a statically linked luajit.
75
+ #BUILDMODE= static
76
+ #
77
+ # Dynamic mode creates a dynamic library and a dynamically linked luajit.
78
+ # Note: this executable will only run when the library is installed!
79
+ #BUILDMODE= dynamic
80
+ #
81
+ ##############################################################################
82
+
83
+ ##############################################################################
84
+ ################################# FEATURES #################################
85
+ ##############################################################################
86
+ # Enable/disable these features as needed, but make sure you force a full
87
+ # recompile with "make clean", followed by "make".
88
+ XCFLAGS=
89
+ #
90
+ # Permanently disable the FFI extension to reduce the size of the LuaJIT
91
+ # executable. But please consider that the FFI library is compiled-in,
92
+ # but NOT loaded by default. It only allocates any memory, if you actually
93
+ # make use of it.
94
+ #XCFLAGS+= -DLUAJIT_DISABLE_FFI
95
+ #
96
+ # Features from Lua 5.2 that are unlikely to break existing code are
97
+ # enabled by default. Some other features that *might* break some existing
98
+ # code (e.g. __pairs or os.execute() return values) can be enabled here.
99
+ # Note: this does not provide full compatibility with Lua 5.2 at this time.
100
+ #XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT
101
+ #
102
+ # Disable the JIT compiler, i.e. turn LuaJIT into a pure interpreter.
103
+ #XCFLAGS+= -DLUAJIT_DISABLE_JIT
104
+ #
105
+ # Some architectures (e.g. PPC) can use either single-number (1) or
106
+ # dual-number (2) mode. Uncomment one of these lines to override the
107
+ # default mode. Please see LJ_ARCH_NUMMODE in lj_arch.h for details.
108
+ #XCFLAGS+= -DLUAJIT_NUMMODE=1
109
+ #XCFLAGS+= -DLUAJIT_NUMMODE=2
110
+ #
111
+ ##############################################################################
112
+
113
+ ##############################################################################
114
+ ############################ DEBUGGING SUPPORT #############################
115
+ ##############################################################################
116
+ # Enable these options as needed, but make sure you force a full recompile
117
+ # with "make clean", followed by "make".
118
+ # Note that most of these are NOT suitable for benchmarking or release mode!
119
+ #
120
+ # Use the system provided memory allocator (realloc) instead of the
121
+ # bundled memory allocator. This is slower, but sometimes helpful for
122
+ # debugging. This option cannot be enabled on x64, since realloc usually
123
+ # doesn't return addresses in the right address range.
124
+ # OTOH this option is mandatory for Valgrind's memcheck tool on x64 and
125
+ # the only way to get useful results from it for all other architectures.
126
+ #XCFLAGS+= -DLUAJIT_USE_SYSMALLOC
127
+ #
128
+ # This define is required to run LuaJIT under Valgrind. The Valgrind
129
+ # header files must be installed. You should enable debug information, too.
130
+ # Use --suppressions=lj.supp to avoid some false positives.
131
+ #XCFLAGS+= -DLUAJIT_USE_VALGRIND
132
+ #
133
+ # This is the client for the GDB JIT API. GDB 7.0 or higher is required
134
+ # to make use of it. See lj_gdbjit.c for details. Enabling this causes
135
+ # a non-negligible overhead, even when not running under GDB.
136
+ #XCFLAGS+= -DLUAJIT_USE_GDBJIT
137
+ #
138
+ # Turn on assertions for the Lua/C API to debug problems with lua_* calls.
139
+ # This is rather slow -- use only while developing C libraries/embeddings.
140
+ #XCFLAGS+= -DLUA_USE_APICHECK
141
+ #
142
+ # Turn on assertions for the whole LuaJIT VM. This significantly slows down
143
+ # everything. Use only if you suspect a problem with LuaJIT itself.
144
+ #XCFLAGS+= -DLUA_USE_ASSERT
145
+ #
146
+ ##############################################################################
147
+ # You probably don't need to change anything below this line!
148
+ ##############################################################################
149
+
150
+ ##############################################################################
151
+ # Flags and options for host and target.
152
+ ##############################################################################
153
+
154
+ # You can override the following variables at the make command line:
155
+ # CC HOST_CC STATIC_CC DYNAMIC_CC
156
+ # CFLAGS HOST_CFLAGS TARGET_CFLAGS
157
+ # LDFLAGS HOST_LDFLAGS TARGET_LDFLAGS TARGET_SHLDFLAGS
158
+ # LIBS HOST_LIBS TARGET_LIBS
159
+ # CROSS HOST_SYS TARGET_SYS TARGET_FLAGS
160
+ #
161
+ # Cross-compilation examples:
162
+ # make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows
163
+ # make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu-
164
+
165
+ ASOPTIONS= $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS)
166
+ CCOPTIONS= $(CCDEBUG) $(ASOPTIONS)
167
+ LDOPTIONS= $(CCDEBUG) $(LDFLAGS)
168
+
169
+ HOST_CC= $(CC)
170
+ HOST_RM= rm -f
171
+ # If left blank, minilua is built and used. You can supply an installed
172
+ # copy of (plain) Lua 5.1 or 5.2, plus Lua BitOp. E.g. with: HOST_LUA=lua
173
+ HOST_LUA=
174
+
175
+ HOST_XCFLAGS= -I.
176
+ HOST_XLDFLAGS=
177
+ HOST_XLIBS=
178
+ HOST_ACFLAGS= $(CCOPTIONS) $(HOST_XCFLAGS) $(TARGET_ARCH) $(HOST_CFLAGS)
179
+ HOST_ALDFLAGS= $(LDOPTIONS) $(HOST_XLDFLAGS) $(HOST_LDFLAGS)
180
+ HOST_ALIBS= $(HOST_XLIBS) $(LIBS) $(HOST_LIBS)
181
+
182
+ STATIC_CC = $(CROSS)$(CC)
183
+ DYNAMIC_CC = $(CROSS)$(CC) -fPIC
184
+ TARGET_CC= $(STATIC_CC)
185
+ TARGET_STCC= $(STATIC_CC)
186
+ TARGET_DYNCC= $(DYNAMIC_CC)
187
+ TARGET_LD= $(CROSS)$(CC)
188
+ TARGET_AR= $(CROSS)ar rcus
189
+ TARGET_STRIP= $(CROSS)strip
190
+
191
+ TARGET_LIBPATH= $(or $(PREFIX),/usr/local)/$(or $(MULTILIB),lib)
192
+ TARGET_SONAME= libluajit-$(ABIVER).so.$(MAJVER)
193
+ TARGET_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).dylib
194
+ TARGET_DYLIBPATH= $(TARGET_LIBPATH)/$(TARGET_DYLIBNAME)
195
+ TARGET_DLLNAME= lua$(NODOTABIVER).dll
196
+ TARGET_XSHLDFLAGS= -shared -fPIC -Wl,-soname,$(TARGET_SONAME)
197
+ TARGET_DYNXLDOPTS=
198
+
199
+ TARGET_LFSFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
200
+ TARGET_XCFLAGS= $(TARGET_LFSFLAGS) -U_FORTIFY_SOURCE
201
+ TARGET_XLDFLAGS=
202
+ TARGET_XLIBS= -lm
203
+ TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS)
204
+ TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS)
205
+ TARGET_ASFLAGS= $(ASOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS)
206
+ TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS)
207
+ TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS)
208
+ TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS)
209
+
210
+ TARGET_TESTARCH=$(shell $(TARGET_CC) $(TARGET_TCFLAGS) -E lj_arch.h -dM)
211
+ ifneq (,$(findstring LJ_TARGET_X64 ,$(TARGET_TESTARCH)))
212
+ TARGET_LJARCH= x64
213
+ else
214
+ ifneq (,$(findstring LJ_TARGET_X86 ,$(TARGET_TESTARCH)))
215
+ TARGET_LJARCH= x86
216
+ else
217
+ ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH)))
218
+ TARGET_LJARCH= arm
219
+ else
220
+ ifneq (,$(findstring LJ_TARGET_ARM64 ,$(TARGET_TESTARCH)))
221
+ TARGET_LJARCH= arm64
222
+ else
223
+ ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH)))
224
+ ifneq (,$(findstring LJ_LE 1,$(TARGET_TESTARCH)))
225
+ TARGET_ARCH= -DLJ_ARCH_ENDIAN=LUAJIT_LE
226
+ else
227
+ TARGET_ARCH= -DLJ_ARCH_ENDIAN=LUAJIT_BE
228
+ endif
229
+ TARGET_LJARCH= ppc
230
+ else
231
+ ifneq (,$(findstring LJ_TARGET_MIPS ,$(TARGET_TESTARCH)))
232
+ ifneq (,$(findstring MIPSEL ,$(TARGET_TESTARCH)))
233
+ TARGET_ARCH= -D__MIPSEL__=1
234
+ endif
235
+ TARGET_LJARCH= mips
236
+ else
237
+ $(error Unsupported target architecture)
238
+ endif
239
+ endif
240
+ endif
241
+ endif
242
+ endif
243
+ endif
244
+
245
+ ifneq (,$(findstring LJ_TARGET_PS3 1,$(TARGET_TESTARCH)))
246
+ TARGET_SYS= PS3
247
+ TARGET_ARCH+= -D__CELLOS_LV2__
248
+ TARGET_XCFLAGS+= -DLUAJIT_USE_SYSMALLOC
249
+ TARGET_XLIBS+= -lpthread
250
+ endif
251
+
252
+ TARGET_XCFLAGS+= $(CCOPT_$(TARGET_LJARCH))
253
+ TARGET_ARCH+= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET_LJARCH))
254
+
255
+ ifneq (,$(PREFIX))
256
+ ifneq (/usr/local,$(PREFIX))
257
+ TARGET_XCFLAGS+= -DLUA_ROOT=\"$(PREFIX)\"
258
+ ifneq (/usr,$(PREFIX))
259
+ TARGET_DYNXLDOPTS= -Wl,-rpath,$(TARGET_LIBPATH)
260
+ endif
261
+ endif
262
+ endif
263
+ ifneq (,$(MULTILIB))
264
+ TARGET_XCFLAGS+= -DLUA_MULTILIB=\"$(MULTILIB)\"
265
+ endif
266
+ ifneq (,$(LMULTILIB))
267
+ TARGET_XCFLAGS+= -DLUA_LMULTILIB=\"$(LMULTILIB)\"
268
+ endif
269
+
270
+ ##############################################################################
271
+ # System detection.
272
+ ##############################################################################
273
+
274
+ ifeq (Windows,$(findstring Windows,$(OS))$(MSYSTEM)$(TERM))
275
+ HOST_SYS= Windows
276
+ HOST_RM= del
277
+ else
278
+ HOST_SYS:= $(shell uname -s)
279
+ ifneq (,$(findstring MINGW,$(HOST_SYS)))
280
+ HOST_SYS= Windows
281
+ HOST_MSYS= mingw
282
+ endif
283
+ ifneq (,$(findstring CYGWIN,$(HOST_SYS)))
284
+ HOST_SYS= Windows
285
+ HOST_MSYS= cygwin
286
+ endif
287
+ endif
288
+
289
+ TARGET_SYS?= $(HOST_SYS)
290
+ ifeq (Windows,$(TARGET_SYS))
291
+ TARGET_STRIP+= --strip-unneeded
292
+ TARGET_XSHLDFLAGS= -shared
293
+ TARGET_DYNXLDOPTS=
294
+ else
295
+ ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector 2>/dev/null || echo 1))
296
+ TARGET_XCFLAGS+= -fno-stack-protector
297
+ endif
298
+ ifeq (Darwin,$(TARGET_SYS))
299
+ ifeq (,$(MACOSX_DEPLOYMENT_TARGET))
300
+ export MACOSX_DEPLOYMENT_TARGET=10.4
301
+ endif
302
+ TARGET_STRIP+= -x
303
+ TARGET_AR+= 2>/dev/null
304
+ TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC
305
+ TARGET_DYNXLDOPTS=
306
+ TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER)
307
+ ifeq (x64,$(TARGET_LJARCH))
308
+ TARGET_XLDFLAGS+= -pagezero_size 10000 -image_base 100000000
309
+ TARGET_XSHLDFLAGS+= -image_base 7fff04c4a000
310
+ endif
311
+ else
312
+ ifeq (iOS,$(TARGET_SYS))
313
+ TARGET_STRIP+= -x
314
+ TARGET_AR+= 2>/dev/null
315
+ TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC
316
+ TARGET_DYNXLDOPTS=
317
+ TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER)
318
+ ifeq (arm64,$(TARGET_LJARCH))
319
+ TARGET_XCFLAGS+= -fno-omit-frame-pointer
320
+ endif
321
+ else
322
+ ifneq (SunOS,$(TARGET_SYS))
323
+ ifneq (PS3,$(TARGET_SYS))
324
+ TARGET_XLDFLAGS+= -Wl,-E
325
+ endif
326
+ endif
327
+ ifeq (Linux,$(TARGET_SYS))
328
+ TARGET_XLIBS+= -ldl
329
+ endif
330
+ ifeq (GNU/kFreeBSD,$(TARGET_SYS))
331
+ TARGET_XLIBS+= -ldl
332
+ endif
333
+ endif
334
+ endif
335
+ endif
336
+
337
+ ifneq ($(HOST_SYS),$(TARGET_SYS))
338
+ ifeq (Windows,$(TARGET_SYS))
339
+ HOST_XCFLAGS+= -malign-double -DLUAJIT_OS=LUAJIT_OS_WINDOWS
340
+ else
341
+ ifeq (Linux,$(TARGET_SYS))
342
+ HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_LINUX
343
+ else
344
+ ifeq (Darwin,$(TARGET_SYS))
345
+ HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OSX
346
+ else
347
+ ifeq (iOS,$(TARGET_SYS))
348
+ HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OSX
349
+ else
350
+ HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_OTHER
351
+ endif
352
+ endif
353
+ endif
354
+ endif
355
+ endif
356
+
357
+ ifneq (,$(CCDEBUG))
358
+ TARGET_STRIP= @:
359
+ endif
360
+
361
+ ##############################################################################
362
+ # Files and pathnames.
363
+ ##############################################################################
364
+
365
+ MINILUA_O= host/minilua.o
366
+ MINILUA_LIBS= -lm
367
+ MINILUA_T= host/minilua
368
+ MINILUA_X= $(MINILUA_T)
369
+
370
+ ifeq (,$(HOST_LUA))
371
+ HOST_LUA= $(MINILUA_X)
372
+ DASM_DEP= $(MINILUA_T)
373
+ endif
374
+
375
+ DASM_DIR= ../dynasm
376
+ DASM= $(HOST_LUA) $(DASM_DIR)/dynasm.lua
377
+ DASM_XFLAGS=
378
+ DASM_AFLAGS=
379
+ DASM_ARCH= $(TARGET_LJARCH)
380
+
381
+ ifneq (,$(findstring LJ_ARCH_BITS 64,$(TARGET_TESTARCH)))
382
+ DASM_AFLAGS+= -D P64
383
+ endif
384
+ ifneq (,$(findstring LJ_HASJIT 1,$(TARGET_TESTARCH)))
385
+ DASM_AFLAGS+= -D JIT
386
+ endif
387
+ ifneq (,$(findstring LJ_HASFFI 1,$(TARGET_TESTARCH)))
388
+ DASM_AFLAGS+= -D FFI
389
+ endif
390
+ ifneq (,$(findstring LJ_DUALNUM 1,$(TARGET_TESTARCH)))
391
+ DASM_AFLAGS+= -D DUALNUM
392
+ endif
393
+ ifneq (,$(findstring LJ_ARCH_HASFPU 1,$(TARGET_TESTARCH)))
394
+ DASM_AFLAGS+= -D FPU
395
+ TARGET_ARCH+= -DLJ_ARCH_HASFPU=1
396
+ else
397
+ TARGET_ARCH+= -DLJ_ARCH_HASFPU=0
398
+ endif
399
+ ifeq (,$(findstring LJ_ABI_SOFTFP 1,$(TARGET_TESTARCH)))
400
+ DASM_AFLAGS+= -D HFABI
401
+ TARGET_ARCH+= -DLJ_ABI_SOFTFP=0
402
+ else
403
+ TARGET_ARCH+= -DLJ_ABI_SOFTFP=1
404
+ endif
405
+ ifneq (,$(findstring LJ_NO_UNWIND 1,$(TARGET_TESTARCH)))
406
+ DASM_AFLAGS+= -D NO_UNWIND
407
+ TARGET_ARCH+= -DLUAJIT_NO_UNWIND
408
+ endif
409
+ DASM_AFLAGS+= -D VER=$(subst LJ_ARCH_VERSION_,,$(filter LJ_ARCH_VERSION_%,$(subst LJ_ARCH_VERSION ,LJ_ARCH_VERSION_,$(TARGET_TESTARCH))))
410
+ ifeq (Windows,$(TARGET_SYS))
411
+ DASM_AFLAGS+= -D WIN
412
+ endif
413
+ ifeq (x64,$(TARGET_LJARCH))
414
+ ifeq (,$(findstring LJ_FR2 1,$(TARGET_TESTARCH)))
415
+ DASM_ARCH= x86
416
+ endif
417
+ else
418
+ ifeq (arm,$(TARGET_LJARCH))
419
+ ifeq (iOS,$(TARGET_SYS))
420
+ DASM_AFLAGS+= -D IOS
421
+ endif
422
+ else
423
+ ifeq (ppc,$(TARGET_LJARCH))
424
+ ifneq (,$(findstring LJ_ARCH_SQRT 1,$(TARGET_TESTARCH)))
425
+ DASM_AFLAGS+= -D SQRT
426
+ endif
427
+ ifneq (,$(findstring LJ_ARCH_ROUND 1,$(TARGET_TESTARCH)))
428
+ DASM_AFLAGS+= -D ROUND
429
+ endif
430
+ ifneq (,$(findstring LJ_ARCH_PPC32ON64 1,$(TARGET_TESTARCH)))
431
+ DASM_AFLAGS+= -D GPR64
432
+ endif
433
+ ifeq (PS3,$(TARGET_SYS))
434
+ DASM_AFLAGS+= -D PPE -D TOC
435
+ endif
436
+ ifneq (,$(findstring LJ_ARCH_PPC64 ,$(TARGET_TESTARCH)))
437
+ DASM_ARCH= ppc64
438
+ endif
439
+ endif
440
+ endif
441
+ endif
442
+
443
+ DASM_FLAGS= $(DASM_XFLAGS) $(DASM_AFLAGS)
444
+ DASM_DASC= vm_$(DASM_ARCH).dasc
445
+
446
+ BUILDVM_O= host/buildvm.o host/buildvm_asm.o host/buildvm_peobj.o \
447
+ host/buildvm_lib.o host/buildvm_fold.o
448
+ BUILDVM_T= host/buildvm
449
+ BUILDVM_X= $(BUILDVM_T)
450
+
451
+ HOST_O= $(MINILUA_O) $(BUILDVM_O)
452
+ HOST_T= $(MINILUA_T) $(BUILDVM_T)
453
+
454
+ LJVM_S= lj_vm.S
455
+ LJVM_O= lj_vm.o
456
+ LJVM_BOUT= $(LJVM_S)
457
+ LJVM_MODE= elfasm
458
+
459
+ LJLIB_O= lib_base.o lib_math.o lib_bit.o lib_string.o lib_table.o \
460
+ lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o
461
+ LJLIB_C= $(LJLIB_O:.o=.c)
462
+
463
+ LJCORE_O= lj_gc.o lj_err.o lj_char.o lj_bc.o lj_obj.o lj_buf.o \
464
+ lj_str.o lj_tab.o lj_func.o lj_udata.o lj_meta.o lj_debug.o \
465
+ lj_state.o lj_dispatch.o lj_vmevent.o lj_vmmath.o lj_strscan.o \
466
+ lj_strfmt.o lj_api.o lj_profile.o \
467
+ lj_lex.o lj_parse.o lj_bcread.o lj_bcwrite.o lj_load.o \
468
+ lj_ir.o lj_opt_mem.o lj_opt_fold.o lj_opt_narrow.o \
469
+ lj_opt_dce.o lj_opt_loop.o lj_opt_split.o lj_opt_sink.o \
470
+ lj_mcode.o lj_snap.o lj_record.o lj_crecord.o lj_ffrecord.o \
471
+ lj_asm.o lj_trace.o lj_gdbjit.o \
472
+ lj_ctype.o lj_cdata.o lj_cconv.o lj_ccall.o lj_ccallback.o \
473
+ lj_carith.o lj_clib.o lj_cparse.o \
474
+ lj_lib.o lj_alloc.o lib_aux.o \
475
+ $(LJLIB_O) lib_init.o
476
+
477
+ LJVMCORE_O= $(LJVM_O) $(LJCORE_O)
478
+ LJVMCORE_DYNO= $(LJVMCORE_O:.o=_dyn.o)
479
+
480
+ LIB_VMDEF= jit/vmdef.lua
481
+ LIB_VMDEFP= $(LIB_VMDEF)
482
+
483
+ LUAJIT_O= luajit.o
484
+ LUAJIT_A= libluajit.a
485
+ LUAJIT_SO= libluajit.so
486
+ LUAJIT_T= luajit
487
+
488
+ ALL_T= $(LUAJIT_T) $(LUAJIT_A) $(LUAJIT_SO) $(HOST_T)
489
+ ALL_HDRGEN= lj_bcdef.h lj_ffdef.h lj_libdef.h lj_recdef.h lj_folddef.h \
490
+ host/buildvm_arch.h
491
+ ALL_GEN= $(LJVM_S) $(ALL_HDRGEN) $(LIB_VMDEFP)
492
+ WIN_RM= *.obj *.lib *.exp *.dll *.exe *.manifest *.pdb *.ilk
493
+ ALL_RM= $(ALL_T) $(ALL_GEN) *.o host/*.o $(WIN_RM)
494
+
495
+ ##############################################################################
496
+ # Build mode handling.
497
+ ##############################################################################
498
+
499
+ # Mixed mode defaults.
500
+ TARGET_O= $(LUAJIT_A)
501
+ TARGET_T= $(LUAJIT_T) $(LUAJIT_SO)
502
+ TARGET_DEP= $(LIB_VMDEF) $(LUAJIT_SO)
503
+
504
+ ifeq (Windows,$(TARGET_SYS))
505
+ TARGET_DYNCC= $(STATIC_CC)
506
+ LJVM_MODE= peobj
507
+ LJVM_BOUT= $(LJVM_O)
508
+ LUAJIT_T= luajit.exe
509
+ ifeq (cygwin,$(HOST_MSYS))
510
+ LUAJIT_SO= cyg$(TARGET_DLLNAME)
511
+ else
512
+ LUAJIT_SO= $(TARGET_DLLNAME)
513
+ endif
514
+ # Mixed mode is not supported on Windows. And static mode doesn't work well.
515
+ # C modules cannot be loaded, because they bind to lua51.dll.
516
+ ifneq (static,$(BUILDMODE))
517
+ BUILDMODE= dynamic
518
+ TARGET_XCFLAGS+= -DLUA_BUILD_AS_DLL
519
+ endif
520
+ endif
521
+ ifeq (Darwin,$(TARGET_SYS))
522
+ LJVM_MODE= machasm
523
+ endif
524
+ ifeq (iOS,$(TARGET_SYS))
525
+ LJVM_MODE= machasm
526
+ endif
527
+ ifeq (SunOS,$(TARGET_SYS))
528
+ BUILDMODE= static
529
+ endif
530
+ ifeq (PS3,$(TARGET_SYS))
531
+ BUILDMODE= static
532
+ endif
533
+
534
+ ifeq (Windows,$(HOST_SYS))
535
+ MINILUA_T= host/minilua.exe
536
+ BUILDVM_T= host/buildvm.exe
537
+ ifeq (,$(HOST_MSYS))
538
+ MINILUA_X= host\minilua
539
+ BUILDVM_X= host\buildvm
540
+ ALL_RM:= $(subst /,\,$(ALL_RM))
541
+ endif
542
+ endif
543
+
544
+ ifeq (static,$(BUILDMODE))
545
+ TARGET_DYNCC= @:
546
+ TARGET_T= $(LUAJIT_T)
547
+ TARGET_DEP= $(LIB_VMDEF)
548
+ else
549
+ ifeq (dynamic,$(BUILDMODE))
550
+ ifneq (Windows,$(TARGET_SYS))
551
+ TARGET_CC= $(DYNAMIC_CC)
552
+ endif
553
+ TARGET_DYNCC= @:
554
+ LJVMCORE_DYNO= $(LJVMCORE_O)
555
+ TARGET_O= $(LUAJIT_SO)
556
+ TARGET_XLDFLAGS+= $(TARGET_DYNXLDOPTS)
557
+ else
558
+ ifeq (Darwin,$(TARGET_SYS))
559
+ TARGET_DYNCC= @:
560
+ LJVMCORE_DYNO= $(LJVMCORE_O)
561
+ endif
562
+ ifeq (iOS,$(TARGET_SYS))
563
+ TARGET_DYNCC= @:
564
+ LJVMCORE_DYNO= $(LJVMCORE_O)
565
+ endif
566
+ endif
567
+ endif
568
+
569
+ Q= @
570
+ E= @echo
571
+ #Q=
572
+ #E= @:
573
+
574
+ ##############################################################################
575
+ # Make targets.
576
+ ##############################################################################
577
+
578
+ default all: $(TARGET_T)
579
+
580
+ amalg:
581
+ @grep "^[+|]" ljamalg.c
582
+ $(MAKE) all "LJCORE_O=ljamalg.o"
583
+
584
+ clean:
585
+ $(HOST_RM) $(ALL_RM)
586
+
587
+ libbc:
588
+ ./$(LUAJIT_T) host/genlibbc.lua -o host/buildvm_libbc.h $(LJLIB_C)
589
+ $(MAKE) all
590
+
591
+ depend:
592
+ @for file in $(ALL_HDRGEN); do \
593
+ test -f $$file || touch $$file; \
594
+ done
595
+ @$(HOST_CC) $(HOST_ACFLAGS) -MM *.c host/*.c | \
596
+ sed -e "s| [^ ]*/dasm_\S*\.h||g" \
597
+ -e "s|^\([^l ]\)|host/\1|" \
598
+ -e "s| lj_target_\S*\.h| lj_target_*.h|g" \
599
+ -e "s| lj_emit_\S*\.h| lj_emit_*.h|g" \
600
+ -e "s| lj_asm_\S*\.h| lj_asm_*.h|g" >Makefile.dep
601
+ @for file in $(ALL_HDRGEN); do \
602
+ test -s $$file || $(HOST_RM) $$file; \
603
+ done
604
+
605
+ .PHONY: default all amalg clean libbc depend
606
+
607
+ ##############################################################################
608
+ # Rules for generated files.
609
+ ##############################################################################
610
+
611
+ $(MINILUA_T): $(MINILUA_O)
612
+ $(E) "HOSTLINK $@"
613
+ $(Q)$(HOST_CC) $(HOST_ALDFLAGS) -o $@ $(MINILUA_O) $(MINILUA_LIBS) $(HOST_ALIBS)
614
+
615
+ host/buildvm_arch.h: $(DASM_DASC) $(DASM_DEP)
616
+ $(E) "DYNASM $@"
617
+ $(Q)$(DASM) $(DASM_FLAGS) -o $@ $(DASM_DASC)
618
+
619
+ host/buildvm.o: $(DASM_DIR)/dasm_*.h
620
+
621
+ $(BUILDVM_T): $(BUILDVM_O)
622
+ $(E) "HOSTLINK $@"
623
+ $(Q)$(HOST_CC) $(HOST_ALDFLAGS) -o $@ $(BUILDVM_O) $(HOST_ALIBS)
624
+
625
+ $(LJVM_BOUT): $(BUILDVM_T)
626
+ $(E) "BUILDVM $@"
627
+ $(Q)$(BUILDVM_X) -m $(LJVM_MODE) -o $@
628
+
629
+ lj_bcdef.h: $(BUILDVM_T) $(LJLIB_C)
630
+ $(E) "BUILDVM $@"
631
+ $(Q)$(BUILDVM_X) -m bcdef -o $@ $(LJLIB_C)
632
+
633
+ lj_ffdef.h: $(BUILDVM_T) $(LJLIB_C)
634
+ $(E) "BUILDVM $@"
635
+ $(Q)$(BUILDVM_X) -m ffdef -o $@ $(LJLIB_C)
636
+
637
+ lj_libdef.h: $(BUILDVM_T) $(LJLIB_C)
638
+ $(E) "BUILDVM $@"
639
+ $(Q)$(BUILDVM_X) -m libdef -o $@ $(LJLIB_C)
640
+
641
+ lj_recdef.h: $(BUILDVM_T) $(LJLIB_C)
642
+ $(E) "BUILDVM $@"
643
+ $(Q)$(BUILDVM_X) -m recdef -o $@ $(LJLIB_C)
644
+
645
+ $(LIB_VMDEF): $(BUILDVM_T) $(LJLIB_C)
646
+ $(E) "BUILDVM $@"
647
+ $(Q)$(BUILDVM_X) -m vmdef -o $(LIB_VMDEFP) $(LJLIB_C)
648
+
649
+ lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c
650
+ $(E) "BUILDVM $@"
651
+ $(Q)$(BUILDVM_X) -m folddef -o $@ lj_opt_fold.c
652
+
653
+ ##############################################################################
654
+ # Object file rules.
655
+ ##############################################################################
656
+
657
+ %.o: %.c
658
+ $(E) "CC $@"
659
+ $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $<
660
+ $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $<
661
+
662
+ %.o: %.S
663
+ $(E) "ASM $@"
664
+ $(Q)$(TARGET_DYNCC) $(TARGET_ASFLAGS) -c -o $(@:.o=_dyn.o) $<
665
+ $(Q)$(TARGET_CC) $(TARGET_ASFLAGS) -c -o $@ $<
666
+
667
+ $(LUAJIT_O):
668
+ $(E) "CC $@"
669
+ $(Q)$(TARGET_STCC) $(TARGET_ACFLAGS) -c -o $@ $<
670
+
671
+ $(HOST_O): %.o: %.c
672
+ $(E) "HOSTCC $@"
673
+ $(Q)$(HOST_CC) $(HOST_ACFLAGS) -c -o $@ $<
674
+
675
+ include Makefile.dep
676
+
677
+ ##############################################################################
678
+ # Target file rules.
679
+ ##############################################################################
680
+
681
+ $(LUAJIT_A): $(LJVMCORE_O)
682
+ $(E) "AR $@"
683
+ $(Q)$(TARGET_AR) $@ $(LJVMCORE_O)
684
+
685
+ # The dependency on _O, but linking with _DYNO is intentional.
686
+ $(LUAJIT_SO): $(LJVMCORE_O)
687
+ $(E) "DYNLINK $@"
688
+ $(Q)$(TARGET_LD) $(TARGET_ASHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_ALIBS)
689
+ $(Q)$(TARGET_STRIP) $@
690
+
691
+ $(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP)
692
+ $(E) "LINK $@"
693
+ $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_ALIBS)
694
+ $(Q)$(TARGET_STRIP) $@
695
+ $(E) "OK Successfully built LuaJIT"
696
+
697
+ ##############################################################################