diff options
Diffstat (limited to 'src/mruby_core.rake')
| -rw-r--r-- | src/mruby_core.rake | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mruby_core.rake b/src/mruby_core.rake new file mode 100644 index 000000000..bc84ed6d9 --- /dev/null +++ b/src/mruby_core.rake @@ -0,0 +1,25 @@ +dir = File.dirname(__FILE__).sub(%r|^\./|, '') + +MRuby.each_target do + lex_def = "#{dir}/lex.def" + objs = Dir.glob("src/*.{c}").map { |f| f.pathmap("#{build_dir}/%X.o") } + ["#{build_dir}/#{dir}/y.tab.o"] + self.libmruby << objs + + file "#{build_dir}/lib/libmruby_core.a" => objs do |t| + archive t.name, 'r', t.prerequisites + end + + # Parser + file "#{build_dir}/#{dir}/y.tab.c" => ["#{dir}/parse.y"] do |t| + run_yacc t.name, t.prerequisites.first + end + + file "#{build_dir}/#{dir}/y.tab.o" => ["#{build_dir}/#{dir}/y.tab.c", lex_def] do |t| + compile_c t.name, t.prerequisites.first, [], dir + end + + # Lexical analyzer + file lex_def => "#{dir}/keywords" do |t| + run_gperf t.name, t.prerequisites.first + end +end |
