diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-01-06 17:14:12 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-01-06 17:14:12 +0900 |
| commit | 8e048ae25db2c00e983bb75f915058844a50c0cb (patch) | |
| tree | 4dbf22f15e482bf082712286bcf0daa5e51aa41c /tasks/mrblib.rake | |
| parent | 1341e53961b3e99ac67d803e5ead677e976d18c4 (diff) | |
| parent | 74c9502bd45fd70926c86ce564c2d5d1df9a6dd0 (diff) | |
| download | mruby-8e048ae25db2c00e983bb75f915058844a50c0cb.tar.gz mruby-8e048ae25db2c00e983bb75f915058844a50c0cb.zip | |
Merge branch 'shuujii-improve-source-scanning-for-presym'
Diffstat (limited to 'tasks/mrblib.rake')
| -rw-r--r-- | tasks/mrblib.rake | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/tasks/mrblib.rake b/tasks/mrblib.rake index a7f592593..5567515d6 100644 --- a/tasks/mrblib.rake +++ b/tasks/mrblib.rake @@ -2,13 +2,18 @@ MRuby.each_target do next unless libmruby_enabled? src = "#{build_dir}/mrblib/mrblib.c" - obj = objfile(src.ext) rbfiles = Dir["#{MRUBY_ROOT}/mrblib/*.rb"].sort! - self.libmruby_objs << obj + self.libmruby_objs << objfile(src.ext) - file obj => src file src => [mrbcfile, __FILE__, *rbfiles] do |t| + if presym_enabled? + cdump = true + suffix = "proc" + else + cdump = false + suffix = "irep" + end mkdir_p File.dirname(t.name) File.open(t.name, 'w') do |f| _pp "GEN", "mrblib/*.rb", "#{t.name.relative_path}" @@ -19,14 +24,17 @@ MRuby.each_target do f.puts %Q[ * This file was generated!] f.puts %Q[ * All manual changes will get lost.] f.puts %Q[ */] - mrbc.run f, rbfiles, 'mrblib_proc' - f.puts <<INIT_END -void -mrb_init_mrblib(mrb_state *mrb) -{ - mrb_load_proc(mrb, mrblib_proc); -} -INIT_END + unless presym_enabled? + f.puts %Q[#include <mruby.h>] + f.puts %Q[#include <mruby/irep.h>] + end + mrbc.run f, rbfiles, "mrblib_#{suffix}", cdump + f.puts %Q[void] + f.puts %Q[mrb_init_mrblib(mrb_state *mrb)] + f.puts %Q[{] + f.puts %Q[ mrblib_#{suffix}_init_syms(mrb);] if cdump + f.puts %Q[ mrb_load_#{suffix}(mrb, mrblib_#{suffix});] + f.puts %Q[}] end end end |
