diff options
| author | dearblue <[email protected]> | 2021-05-02 16:52:50 +0900 |
|---|---|---|
| committer | dearblue <[email protected]> | 2021-05-02 16:52:50 +0900 |
| commit | 66a55fb4dfe1190dd9d87c7a07eb9e0cacc2df23 (patch) | |
| tree | 3e223db45f2f8a06f5987d262a53934f254e4c6e | |
| parent | 8f362eaf8a49af23c2c68d7d84b24c5211578881 (diff) | |
| download | mruby-66a55fb4dfe1190dd9d87c7a07eb9e0cacc2df23.tar.gz mruby-66a55fb4dfe1190dd9d87c7a07eb9e0cacc2df23.zip | |
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
```
| -rw-r--r-- | mrbgems/mruby-compiler/mrbgem.rake | 7 |
1 files changed, 5 insertions, 2 deletions
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 |
