summaryrefslogtreecommitdiffhomepage
path: root/mrblib
diff options
context:
space:
mode:
authorYuichiro MASUI <[email protected]>2013-02-23 16:36:57 +0900
committerYuichiro MASUI <[email protected]>2013-02-23 19:03:59 +0900
commit0970ca957226d52af52e1f261fbb7ee8b3086cce (patch)
tree44d19fe10c6650d9010d25ab840ce6e7e2f860fb /mrblib
parent58b9e7672474160df90ba11c915eeac093fe12d2 (diff)
downloadmruby-0970ca957226d52af52e1f261fbb7ee8b3086cce.tar.gz
mruby-0970ca957226d52af52e1f261fbb7ee8b3086cce.zip
Support to build on pwd != mruby source root
Diffstat (limited to 'mrblib')
-rw-r--r--mrblib/mrblib.rake15
1 files changed, 9 insertions, 6 deletions
diff --git a/mrblib/mrblib.rake b/mrblib/mrblib.rake
index 5b4070745..3cd66d0d5 100644
--- a/mrblib/mrblib.rake
+++ b/mrblib/mrblib.rake
@@ -1,14 +1,17 @@
MRuby.each_target do
- dir = File.dirname(__FILE__).relative_path_from(root)
- self.libmruby << objfile("#{build_dir}/#{dir}/mrblib")
+ 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}"
+
+ self.libmruby << objfile("#{current_build_dir}/mrblib")
- file objfile("#{build_dir}/#{dir}/mrblib") => "#{build_dir}/#{dir}/mrblib.c"
- file "#{build_dir}/#{dir}/mrblib.c" => [mrbcfile] + Dir.glob("#{dir}/*.rb") do |t|
+ file objfile("#{current_build_dir}/mrblib") => "#{current_build_dir}/mrblib.c"
+ file "#{current_build_dir}/mrblib.c" => [mrbcfile] + Dir.glob("#{current_dir}/*.rb") do |t|
mrbc_, *rbfiles = t.prerequisites
FileUtils.mkdir_p File.dirname(t.name)
open(t.name, 'w') do |f|
- _pp "GEN", "*.rb", "#{t.name}"
- f.puts File.read("#{dir}/init_mrblib.c")
+ _pp "GEN", "*.rb", "#{t.name.relative_path}"
+ f.puts File.read("#{current_dir}/init_mrblib.c")
mrbc.run f, rbfiles, 'mrblib_irep'
end
end