Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 84 lines (74 sloc) 2.188 kb
#!./miniruby
require 'mkmf'
case ARGV[0]
when "-n"
ARGV.shift
include FileUtils::DryRun
when "-v"
ARGV.shift
include FileUtils::Verbose
else
include FileUtils
end
module Mswin
def ln_safe(src, dest, *opt)
cmd = ["mklink", dest.tr("/", "\\"), src.tr("/", "\\")]
cmd[1, 0] = opt
# TODO: use RUNAS or something
puts cmd.join(" ")
end
def ln_dir_safe(src, dest)
ln_safe(src, dest, "/d")
end
end
def ln_safe(src, dest)
link = File.readlink(dest) rescue nil
return if link == src
ln_sf(src, dest)
end
alias ln_dir_safe ln_safe
if /mingw|mswin/ =~ RbConfig::CONFIG["build_os"]
extend Mswin
end
config = RbConfig::CONFIG
extout = ARGV[0] || config["EXTOUT"]
version = config["ruby_version"]
arch = config["arch"]
bindir = File.basename(config["bindir"])
libdir = File.basename(config["libdir"])
[bindir, libdir].each do |dir|
File.directory?(dir) or mkdir_p(dir)
end
exeext = config["EXEEXT"]
ruby_install_name = config["ruby_install_name"]
rubyw_install_name = config["rubyw_install_name"]
goruby_install_name = "go" + ruby_install_name
[ruby_install_name, rubyw_install_name, goruby_install_name].map do |ruby|
ruby += exeext
if ruby and !ruby.empty?
ln_safe("../#{ruby}", "#{bindir}/#{ruby}")
end
end
libruby = config.values_at("LIBRUBY_A", "LIBRUBY_SO")
libruby.concat(config["LIBRUBY_ALIASES"].split)
libruby.each {|lib|ln_safe("../#{lib}", "#{libdir}/#{lib}")}
if File.expand_path(extout) == extout
ln_dir_safe(extout, "#{libdir}/ruby")
else
ln_dir_safe(File.join("..", extout), "#{libdir}/ruby")
cur = "#{extout}/".gsub(/(\A|\/)(?:\.\/)+/, '\1').tr_s('/', '/')
nil while cur.sub!(/[^\/]+\/\.\.\//, '')
if /(\A|\/)\.\.\// =~ cur
cur = nil
else
cur.gsub!(/[^\/]+/, '..')
end
end
if cur
ln_safe(File.join("..", cur, "rbconfig.rb"), File.join(extout, arch, "rbconfig.rb"))
else
ln_safe(File.expand_path("rbconfig.rb"), File.join(extout, arch, "rbconfig.rb"))
end
ln_dir_safe("common", File.join(extout, version))
ln_dir_safe(File.join("..", arch), File.join(extout, "common", arch))
ln_dir_safe(relative_from(File.join(File.dirname(config["srcdir"]), "lib"), ".."), File.join(extout, "vendor_ruby"))
Jump to Line
Something went wrong with that request. Please try again.