summaryrefslogtreecommitdiff
path: root/tool/fake.rb
diff options
context:
space:
mode:
Diffstat (limited to 'tool/fake.rb')
-rw-r--r--tool/fake.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/tool/fake.rb b/tool/fake.rb
index 42174052e2..0366144531 100644
--- a/tool/fake.rb
+++ b/tool/fake.rb
@@ -9,6 +9,15 @@ class File
end
end
+[[libpathenv, "."], [preloadenv, libruby_so]].each do |env, path|
+ env or next
+ e = ENV[env] or next
+ e = e.split(File::PATH_SEPARATOR)
+ path = File.realpath(path, builddir) rescue next
+ e.delete(path) or next
+ ENV[env] = (e.join(File::PATH_SEPARATOR) unless e.empty?)
+end
+
static = !!(defined?($static) && $static)
$:.unshift(builddir)
posthook = proc do
@@ -24,6 +33,7 @@ posthook = proc do
untrace_var(:$ruby, posthook)
end
prehook = proc do |extmk|
+=begin
pat = %r[(?:\A(?:\w:|//[^/]+)|\G)/[^/]*]
dir = builddir.scan(pat)
pwd = Dir.pwd.scan(pat)
@@ -35,6 +45,7 @@ prehook = proc do |extmk|
builddir = File.join((pwd.empty? ? ["."] : [".."]*pwd.size) + dir)
builddir = "." if builddir.empty?
end
+=end
join = proc {|*args| File.join(*args).sub!(/\A(?:\.\/)*/, '')}
$topdir ||= builddir
$top_srcdir ||= (File.identical?(top_srcdir, dir = join[$topdir, srcdir]) ?
@@ -43,9 +54,11 @@ prehook = proc do |extmk|
$extout_prefix = '$(extout)$(target_prefix)/'
config = RbConfig::CONFIG
mkconfig = RbConfig::MAKEFILE_CONFIG
+ $builtruby ||= File.join(builddir, config['RUBY_INSTALL_NAME'] + config['EXEEXT'])
RbConfig.fire_update!("builddir", builddir)
RbConfig.fire_update!("buildlibdir", builddir)
RbConfig.fire_update!("libdir", builddir)
+ RbConfig.fire_update!("prefix", $topdir)
RbConfig.fire_update!("top_srcdir", $top_srcdir ||= top_srcdir)
RbConfig.fire_update!("extout", $extout)
RbConfig.fire_update!("rubyhdrdir", "$(top_srcdir)/include")