From 66a55fb4dfe1190dd9d87c7a07eb9e0cacc2df23 Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 2 May 2021 16:52:50 +0900 Subject: Run the task only once when `parse.y` is updated Previously, the task was executed as many times as there were targets, including `mruby-compiler`. ```console % rm mrbgems/mruby-compiler/core/y.tab.c % rake `pwd`/mrbgems/mruby-compiler/core/y.tab.c YACC mrbgems/mruby-compiler/core/parse.y -> mrbgems/mruby-compiler/core/y.tab.c YACC mrbgems/mruby-compiler/core/parse.y -> mrbgems/mruby-compiler/core/y.tab.c ``` --- mrbgems/mruby-compiler/mrbgem.rake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'mrbgems') diff --git a/mrbgems/mruby-compiler/mrbgem.rake b/mrbgems/mruby-compiler/mrbgem.rake index 3ecaa8908..be069f386 100644 --- a/mrbgems/mruby-compiler/mrbgem.rake +++ b/mrbgems/mruby-compiler/mrbgem.rake @@ -12,18 +12,21 @@ MRuby::Gem::Specification.new 'mruby-compiler' do |spec| end end build.libmruby_core_objs << objs +end +if MRuby::Build.current.name == "host" + dir = __dir__ lex_def = "#{dir}/core/lex.def" # Parser file "#{dir}/core/y.tab.c" => ["#{dir}/core/parse.y", lex_def] do |t| - yacc.run t.name, t.prerequisites.first + MRuby.targets["host"].yacc.run t.name, t.prerequisites.first replace_line_directive(t.name) end # Lexical analyzer file lex_def => "#{dir}/core/keywords" do |t| - gperf.run t.name, t.prerequisites.first + MRuby.targets["host"].gperf.run t.name, t.prerequisites.first replace_line_directive(t.name) end -- cgit v1.2.3