<% arg = {} while /\A(\w+)=(.*)/ =~ ARGV[0] arg[$1] = $2 arg[$1].tr!(File::ALT_SEPARATOR, File::SEPARATOR) if File::ALT_SEPARATOR ARGV.shift end if arg['i'] src = File.read(arg['i']) arg['versions'] = version = {} src.scan(/rb_define_global_const\("(RUBY_\w+)",\s*(?:.*rb_\w*str_new\w*\s*\(\s*(\w+)|[\(\s]*\(\s*VALUE\s*\)\s*\((.+)\)\s*\)\s*<<\s?)/) do |n, s, i| version[n] = i ? i.gsub(/\s+/, '').to_i : src[/\b#{s}\[\]\s*=\s*((?:"(?:\\.|[^\"\\])*"\s*)*);/m, 1].gsub(/\A"|"\s*\z|" *"/, '').gsub(/\\(.)/, '\1') end end %>baseruby="<%=arg['BASERUBY']%>" ruby="${RUBY-$baseruby}" _= "eval" "{" \ "`expr \"$ruby\" : echo > /dev/null || echo exec`" \ "$ruby" '-r"`expr \"$0\" : / > /dev/null || pwd`/${0#/}" "$@";' \ "}" || "exit" "$?" _=baseruby ruby=ruby class Object remove_const :CROSS_COMPILING if defined?(CROSS_COMPILING) CROSS_COMPILING = RUBY_PLATFORM constants.grep(/^RUBY_/) {|n| remove_const n} % arg['versions'].each {|n, v| <%=n%> = <%=v.inspect%> % } end builddir = File.dirname(File.expand_path(__FILE__)) top_srcdir = File.expand_path("<%=arg['srcdir']%>", builddir) $:.unshift(builddir) fake = File.join(top_srcdir, "tool/fake.rb") eval(File.read(fake), nil, fake) ENV["RUBYOPT"] = ["-r#{__FILE__}", ENV["RUBYOPT"]].compact.join(" ")