summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorYuichiro MASUI <[email protected]>2013-02-03 05:18:28 +0900
committerYuichiro MASUI <[email protected]>2013-02-03 13:38:18 +0900
commita74f92b46be80a754486e696d117903fbb090686 (patch)
treed8a236616935a0341c1d1272642c0227231c63c9 /test
parentdfff732318395c7dc2a01ba64bafd1bd46bf454d (diff)
downloadmruby-a74f92b46be80a754486e696d117903fbb090686.tar.gz
mruby-a74f92b46be80a754486e696d117903fbb090686.zip
Generate mrbtest.a file for sparete from driver.o
Diffstat (limited to 'test')
-rw-r--r--test/mrbtest.rake23
1 files changed, 15 insertions, 8 deletions
diff --git a/test/mrbtest.rake b/test/mrbtest.rake
index 4d4a7e57c..707fe8b72 100644
--- a/test/mrbtest.rake
+++ b/test/mrbtest.rake
@@ -8,20 +8,27 @@ MRuby.each_target do
init = "#{dir}/init_mrbtest.c"
asslib = "#{dir}/assert.rb"
- objs = [objfile("#{build_dir}/#{dir}/driver"), mlib].flatten
+ mrbtest_lib = libfile("#{build_dir}/#{dir}/mrbtest")
+ file mrbtest_lib => [mlib, gems.map(&:test_objs), gems.map { |g| g.test_rbireps.ext(exts.object) }].flatten do |t|
+ archiver.run t.name, t.prerequisites
+ end
- file exec => objs + gems.map(&:testlib).flatten + [libfile("#{build_dir}/lib/libmruby")] do |t|
- gem_flags = gems.map { |g| g.linker.flags }
- gem_flags_before_libraries = gems.map { |g| g.linker.flags_before_libraries }
- gem_flags_after_libraries = gems.map { |g| g.linker.flags_after_libraries }
- gem_libraries = gems.map { |g| g.linker.libraries }
- gem_library_paths = gems.map { |g| g.linker.library_paths }
- linker.run t.name, t.prerequisites, gem_libraries, gem_library_paths, gem_flags, gem_flags_before_libraries
+ unless build_mrbtest_lib_only?
+ driver_obj = objfile("#{build_dir}/#{dir}/driver")
+ file exec => [driver_obj, mrbtest_lib, libfile("#{build_dir}/lib/libmruby")] do |t|
+ gem_flags = gems.map { |g| g.linker.flags }
+ gem_flags_before_libraries = gems.map { |g| g.linker.flags_before_libraries }
+ gem_flags_after_libraries = gems.map { |g| g.linker.flags_after_libraries }
+ gem_libraries = gems.map { |g| g.linker.libraries }
+ gem_library_paths = gems.map { |g| g.linker.library_paths }
+ linker.run t.name, t.prerequisites, gem_libraries, gem_library_paths, gem_flags, gem_flags_before_libraries
+ end
end
file mlib => [clib]
file clib => [mrbcfile, init, asslib] + mrbs do |t|
_pp "GEN", "*.rb", "#{clib}"
+ FileUtils.mkdir_p File.dirname(__FILE__)
open(clib, 'w') do |f|
f.puts IO.read(init)
mrbc.run f, [asslib] + mrbs, 'mrbtest_irep'