summaryrefslogtreecommitdiff
path: root/ext/extmk.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-28 14:19:40 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-28 14:19:40 +0000
commit1f11d86110521c17912e4be036add488b5ce1928 (patch)
tree12d5c93480fe70825fed6ebc360b1192888bf8fb /ext/extmk.rb
parent2eb44a2abcbbe73e5c2b8f26b0d1da8b0746f28e (diff)
* ext/extmk.rb: prefer relative path. [ruby-talk:93037]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7125 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/extmk.rb')
-rw-r--r--ext/extmk.rb20
1 files changed, 18 insertions, 2 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 618ef328c2..e24fb6a649 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -20,14 +20,14 @@ $extlist = []
$:.replace ["."]
require 'rbconfig'
-srcdir = Config::CONFIG["srcdir"]
+srcdir = File.dirname(File.dirname(__FILE__))
$:.replace [srcdir, srcdir+"/lib", "."]
require 'mkmf'
require 'getopts'
-$topdir = File.expand_path(".")
+$topdir = "."
$top_srcdir = srcdir
$hdrdir = $top_srcdir
@@ -55,6 +55,13 @@ def extmake(target)
dir = Dir.pwd
FileUtils.mkpath target unless File.directory?(target)
Dir.chdir target
+ top_srcdir = $top_srcdir
+ topdir = $topdir
+ prefix = "../" * (target.count("/")+1)
+ if File.expand_path(top_srcdir) != File.expand_path(top_srcdir, dir)
+ $hdrdir = $top_srcdir = prefix + top_srcdir
+ end
+ $topdir = prefix + $topdir
$target = target
$mdir = target
$srcdir = File.join($top_srcdir, "ext", $mdir)
@@ -113,6 +120,8 @@ def extmake(target)
$extpath |= $LIBPATH
end
ensure
+ $hdrdir = $top_srcdir = top_srcdir
+ $topdir = topdir
Dir.chdir dir
end
true
@@ -214,15 +223,22 @@ for dir in ["ext", File::join($top_srcdir, "ext")]
end
end
+dir = Dir.pwd
FileUtils::makedirs('ext')
Dir::chdir('ext')
+if File.expand_path(srcdir) != File.expand_path(srcdir, dir)
+ $hdrdir = $top_srcdir = "../" + srcdir
+end
+$topdir = ".."
ext_prefix = "#{$top_srcdir}/ext"
Dir.glob("#{ext_prefix}/*/**/MANIFEST") do |d|
d = File.dirname(d)
d.slice!(0, ext_prefix.length + 1)
extmake(d) or exit(1)
end
+$hdrdir = $top_srcdir = srcdir
+$topdir = "."
if $ignore
Dir.chdir ".."