diff options
| author | Yuichiro MASUI <[email protected]> | 2013-02-23 16:36:57 +0900 |
|---|---|---|
| committer | Yuichiro MASUI <[email protected]> | 2013-02-23 19:03:59 +0900 |
| commit | 0970ca957226d52af52e1f261fbb7ee8b3086cce (patch) | |
| tree | 44d19fe10c6650d9010d25ab840ce6e7e2f860fb /src/mruby_core.rake | |
| parent | 58b9e7672474160df90ba11c915eeac093fe12d2 (diff) | |
| download | mruby-0970ca957226d52af52e1f261fbb7ee8b3086cce.tar.gz mruby-0970ca957226d52af52e1f261fbb7ee8b3086cce.zip | |
Support to build on pwd != mruby source root
Diffstat (limited to 'src/mruby_core.rake')
| -rw-r--r-- | src/mruby_core.rake | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/mruby_core.rake b/src/mruby_core.rake index 44d62c1e9..db335223d 100644 --- a/src/mruby_core.rake +++ b/src/mruby_core.rake @@ -1,8 +1,11 @@ MRuby.each_target do - dir = File.dirname(__FILE__).relative_path_from(root) - - lex_def = "#{dir}/lex.def" - objs = Dir.glob("src/*.{c}").map { |f| objfile(f.pathmap("#{build_dir}/%X")) } + [objfile("#{build_dir}/#{dir}/y.tab")] + current_dir = File.dirname(__FILE__).relative_path_from(Dir.pwd) + relative_from_root = File.dirname(__FILE__).relative_path_from(MRUBY_ROOT) + current_build_dir = "#{build_dir}/#{relative_from_root}" + + lex_def = "#{current_dir}/lex.def" + objs = Dir.glob("#{current_dir}/*.c").map { |f| objfile(f.pathmap("#{current_build_dir}/%n")) } + objs += [objfile("#{current_build_dir}/y.tab")] self.libmruby << objs file libfile("#{build_dir}/lib/libmruby_core") => objs do |t| @@ -10,16 +13,16 @@ MRuby.each_target do end # Parser - file "#{build_dir}/#{dir}/y.tab.c" => ["#{dir}/parse.y"] do |t| + file "#{current_build_dir}/y.tab.c" => ["#{current_dir}/parse.y"] do |t| yacc.run t.name, t.prerequisites.first end - file objfile("#{build_dir}/#{dir}/y.tab") => ["#{build_dir}/#{dir}/y.tab.c", lex_def] do |t| - cc.run t.name, t.prerequisites.first, [], [dir] + file objfile("#{current_build_dir}/y.tab") => ["#{current_build_dir}/y.tab.c", lex_def] do |t| + cc.run t.name, t.prerequisites.first, [], [current_dir] end # Lexical analyzer - file lex_def => "#{dir}/keywords" do |t| + file lex_def => "#{current_dir}/keywords" do |t| gperf.run t.name, t.prerequisites.first end end |
