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