diff options
| -rw-r--r-- | mrbgems/mruby-bin-mruby-config/mrbgem.rake | 5 | ||||
| -rw-r--r-- | mrbgems/mruby-compiler/mrbgem.rake | 4 | ||||
| -rw-r--r-- | mrbgems/mruby-test/mrbgem.rake | 18 | ||||
| -rw-r--r-- | tasks/libmruby.rake | 1 | ||||
| -rw-r--r-- | tasks/mrbgems.rake | 1 |
5 files changed, 17 insertions, 12 deletions
diff --git a/mrbgems/mruby-bin-mruby-config/mrbgem.rake b/mrbgems/mruby-bin-mruby-config/mrbgem.rake index 66d6ef80b..32ae2164b 100644 --- a/mrbgems/mruby-bin-mruby-config/mrbgem.rake +++ b/mrbgems/mruby-bin-mruby-config/mrbgem.rake @@ -19,9 +19,10 @@ MRuby.each_target do mruby_config_path = "#{build_dir}/bin/#{mruby_config}" @bins << mruby_config - file mruby_config_path => libfile("#{build_dir}/lib/libmruby") do |t| + make_cfg = "#{build_dir}/lib/libmruby.flags.mak" + file mruby_config_path => [libfile("#{build_dir}/lib/libmruby"), make_cfg] do |t| FileUtils.copy "#{File.dirname(__FILE__)}/#{mruby_config}", t.name - config = Hash[open("#{build_dir}/lib/libmruby.flags.mak").read.split("\n").map {|x| a = x.split(/\s*=\s*/, 2); [a[0], a[1].gsub('\\"', '"') ]}] + config = Hash[open(make_cfg).read.split("\n").map {|x| a = x.split(/\s*=\s*/, 2); [a[0], a[1].gsub('\\"', '"') ]}] IO.write(t.name, File.open(t.name) {|f| f.read.gsub (/echo (MRUBY_CFLAGS|MRUBY_LIBS|MRUBY_LDFLAGS_BEFORE_LIBS|MRUBY_LDFLAGS|MRUBY_LIBMRUBY_PATH)/) {|x| config[$1].empty? ? '' : "echo #{config[$1]}"} }) diff --git a/mrbgems/mruby-compiler/mrbgem.rake b/mrbgems/mruby-compiler/mrbgem.rake index 3bf6d6ae3..e9e0cc2c7 100644 --- a/mrbgems/mruby-compiler/mrbgem.rake +++ b/mrbgems/mruby-compiler/mrbgem.rake @@ -23,10 +23,10 @@ MRuby::Gem::Specification.new 'mruby-compiler' do |spec| cc.run t.name, t.prerequisites.first, [], ["#{current_dir}/core"] end end - file objfile("#{current_build_dir}/core/y.tab") => lex_def # Parser - file "#{current_build_dir}/core/y.tab.c" => ["#{current_dir}/core/parse.y"] do |t| + file "#{current_build_dir}/core/y.tab.c" => ["#{current_dir}/core/parse.y", lex_def] do |t| + FileUtils.mkdir_p File.dirname t.name yacc.run t.name, t.prerequisites.first end diff --git a/mrbgems/mruby-test/mrbgem.rake b/mrbgems/mruby-test/mrbgem.rake index 27c635a5d..11d780f75 100644 --- a/mrbgems/mruby-test/mrbgem.rake +++ b/mrbgems/mruby-test/mrbgem.rake @@ -23,7 +23,7 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| mrbtest_objs = [] driver_obj = objfile("#{build_dir}/driver") - driver = "#{spec.dir}/driver.c" + # driver = "#{spec.dir}/driver.c" assert_c = "#{build_dir}/assert.c" assert_rb = "#{MRUBY_ROOT}/test/assert.rb" @@ -31,7 +31,7 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| mrbtest_objs << assert_lib file assert_lib => assert_c - file assert_c => assert_rb do |t| + file assert_c => [assert_rb, build.mrbcfile] do |t| open(t.name, 'w') do |f| mrbc.run f, assert_rb, 'mrbtest_assert_irep' end @@ -45,7 +45,7 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| dep_list = build.gems.tsort_dependencies(g.test_dependencies, gem_table).select(&:generate_functions) file test_rbobj => g.test_rbireps - file g.test_rbireps => [g.test_rbfiles].flatten do |t| + file g.test_rbireps => [g.test_rbfiles, build.mrbcfile].flatten do |t| FileUtils.mkdir_p File.dirname(t.name) open(t.name, 'w') do |f| g.print_gem_test_header(f) @@ -146,7 +146,8 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| gem_flags_after_libraries = build.gems.map { |g| g.linker.flags_after_libraries } gem_libraries = build.gems.map { |g| g.linker.libraries } gem_library_paths = build.gems.map { |g| g.linker.library_paths } - build.linker.run t.name, t.prerequisites, gem_libraries, gem_library_paths, gem_flags, gem_flags_before_libraries + build.linker.run t.name, t.prerequisites, gem_libraries, gem_library_paths, gem_flags, + gem_flags_before_libraries, gem_flags_after_libraries end end @@ -163,13 +164,14 @@ MRuby::Gem::Specification.new('mruby-test') do |spec| nil end current_gem_list = build.gems.map(&:name).join("\n") - if active_gem_list != current_gem_list - File.write active_gems_path, current_gem_list + task active_gems_path do |t| + FileUtils.mkdir_p File.dirname t.name + File.write t.name, current_gem_list end - file clib => active_gems_path + file clib => active_gems_path if active_gem_list != current_gem_list file mlib => clib - file clib => init do |t| + file clib => [init, build.mrbcfile] do |_t| _pp "GEN", "*.rb", "#{clib.relative_path}" FileUtils.mkdir_p File.dirname(clib) open(clib, 'w') do |f| diff --git a/tasks/libmruby.rake b/tasks/libmruby.rake index 540aa3eb5..b6ef29986 100644 --- a/tasks/libmruby.rake +++ b/tasks/libmruby.rake @@ -4,6 +4,7 @@ MRuby.each_target do end file "#{build_dir}/lib/libmruby.flags.mak" => [__FILE__, libfile("#{build_dir}/lib/libmruby")] do |t| + FileUtils.mkdir_p File.dirname t.name open(t.name, 'w') do |f| f.puts "MRUBY_CFLAGS = #{cc.all_flags}" diff --git a/tasks/mrbgems.rake b/tasks/mrbgems.rake index 1b964524c..64e5b0353 100644 --- a/tasks/mrbgems.rake +++ b/tasks/mrbgems.rake @@ -53,6 +53,7 @@ MRuby.each_target do # legal documents file "#{build_dir}/LEGAL" => [MRUBY_CONFIG, __FILE__] do |t| + FileUtils.mkdir_p File.dirname t.name open(t.name, 'w+') do |f| f.puts <<LEGAL Copyright (c) #{Time.now.year} mruby developers |
