1#!/usr/bin/env ruby 2 3if ARGV.size != 5 4 puts("Usage: #{$0} BUILD_COFNIG.RB MRUBY_SOURCE_DIR MRUBY_BUILD_DIR ONIGURUMA_INCLUDE_PATH TIMESTAMP_FILE") 5 exit(false) 6end 7 8require "rbconfig" 9require "fileutils" 10 11build_config_rb = File.expand_path(ARGV.shift) 12mruby_source_dir = ARGV.shift 13mruby_build_dir = File.expand_path(ARGV.shift) 14oniguruma_include_path = File.expand_path(ARGV.shift) 15timestamp_file = File.expand_path(ARGV.shift) 16 17FileUtils.rm_rf(mruby_build_dir) 18 19Dir.chdir(mruby_source_dir) do 20 unless system(RbConfig.ruby, 21 "minirake", 22 "MRUBY_CONFIG=#{build_config_rb}", 23 "MRUBY_BUILD_DIR=#{mruby_build_dir}", 24 "MRUBY_ONIGURUMA_INCLUDE_PATH=#{oniguruma_include_path}") 25 exit(false) 26 end 27end 28 29FileUtils.touch(timestamp_file) 30 31FileUtils.cp("#{mruby_build_dir}/host/LEGAL", "./") 32 33FileUtils.cp("#{mruby_build_dir}/host/mrblib/mrblib.c", "./") 34 35File.open("mrbgems_init.c", "w") do |mrbgems_init| 36 Dir.glob("#{mruby_build_dir}/host/mrbgems/**/gem_init.c") do |gem_init| 37 mrbgems_init.puts(File.read(gem_init)) 38 end 39end 40 41mruby_compiler_dir = "#{mruby_build_dir}/host/mrbgems/mruby-compiler" 42FileUtils.mkdir_p("mruby-compiler/core/") 43FileUtils.cp("#{mruby_compiler_dir}/core/y.tab.c", 44 "mruby-compiler/core/parse.c") 45 46mruby_onig_regexp_dir = "#{mruby_build_dir}/mrbgems/mruby-onig-regexp" 47FileUtils.mkdir_p("mruby-onig-regexp/") 48FileUtils.cp_r("#{mruby_onig_regexp_dir}/src/", "mruby-onig-regexp/") 49 50mruby_env_dir = "#{mruby_build_dir}/mrbgems/mruby-env" 51FileUtils.mkdir_p("mruby-env/") 52FileUtils.cp_r("#{mruby_env_dir}/src/", "mruby-env/") 53 54mruby_io_dir = "#{mruby_build_dir}/mrbgems/mruby-io" 55FileUtils.mkdir_p("mruby-io/") 56FileUtils.cp_r("#{mruby_io_dir}/include/", "mruby-io/") 57FileUtils.cp_r("#{mruby_io_dir}/src/", "mruby-io/") 58 59mruby_file_stat_dir = "#{mruby_build_dir}/mrbgems/mruby-file-stat" 60FileUtils.mkdir_p("mruby-file-stat/") 61FileUtils.cp_r("#{mruby_file_stat_dir}/src/", "mruby-file-stat/") 62 63mruby_dir_dir = "#{mruby_build_dir}/mrbgems/mruby-dir" 64FileUtils.mkdir_p("mruby-dir/") 65FileUtils.cp_r("#{mruby_dir_dir}/src/", "mruby-dir/") 66