diff --git a/ChangeLog b/ChangeLog index ba1676b35f..1e56054594 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -Sun Feb 6 23:50:36 2005 Nobuyoshi Nakada +Mon Feb 7 00:13:38 2005 Nobuyoshi Nakada * ext/socket/extconf.rb: check if getaddrinfo() works fine only when wide-getaddrinfo option is not given. fixed: [ruby-dev:25422] @@ -19,6 +19,9 @@ Sun Feb 6 23:50:36 2005 Nobuyoshi Nakada * lib/mkmf.rb (dir_config): accept arrays of directory names as default values. + * mkconfig.rb: no longer embed srcdir and compile_dir into + rbconfig.rb. + Sun Feb 6 19:23:01 2005 NAKAMURA Usaku * eval.c (stack_extend): add prototype because VC++8 doesn't diff --git a/ext/extmk.rb b/ext/extmk.rb index 62d1cf75af..88f5028a39 100644 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -36,6 +36,14 @@ def sysquote(x) @quote ? x.quote : x end +def relative_from(path, base) + if File.expand_path(path) == File.expand_path(path, base) + path + else + File.join(base, path) + end +end + def extmake(target) print "#{$message} #{target}\n" $stdout.flush @@ -58,9 +66,7 @@ def extmake(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 + $hdrdir = $top_srcdir = relative_from(top_srcdir, prefix) $topdir = prefix + $topdir $target = target $mdir = target @@ -228,10 +234,7 @@ 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 = ".." +$hdrdir = $top_srcdir = relative_from(srcdir, $topdir = "..") ext_prefix = "#{$top_srcdir}/ext" Dir.glob("#{ext_prefix}/*/**/extconf.rb") do |d| d = File.dirname(d) @@ -295,7 +298,7 @@ SRC end rubies = [] %w[RUBY RUBYW].each {|r| - config_string(r+"_INSTALL_NAME") {|r| rubies << r+EXEEXT} + config_string(r+"_INSTALL_NAME", Config::CONFIG) {|r| rubies << r+EXEEXT} } Dir.chdir ".." diff --git a/mkconfig.rb b/mkconfig.rb index b0abee35ad..e743aa803d 100644 --- a/mkconfig.rb +++ b/mkconfig.rb @@ -1,16 +1,19 @@ #!./miniruby -s # avoid warnings with -d. -$srcdir ||= nil $install_name ||= nil $so_name ||= nil -require File.dirname($0)+"/lib/ftools" +srcdir = File.dirname(__FILE__) +$:.replace [srcdir+"/lib", "."] + +require "fileutils" mkconfig = File.basename($0) rbconfig_rb = ARGV[0] || 'rbconfig.rb' -srcdir = $srcdir || '.' -File.makedirs(File.dirname(rbconfig_rb), true) +unless File.directory?(dir = File.dirname(rbconfig_rb)) + FileUtils.makedirs(dir, :verbose => true) +end version = RUBY_VERSION rbconfig_rb_tmp = rbconfig_rb + '.tmp' @@ -52,17 +55,12 @@ File.foreach "config.status" do |line| v_others << v end has_version = true if name == "MAJOR" - elsif /^(?:ac_given_)?srcdir=(.*)/ =~ line - srcdir = $1.strip elsif /^ac_given_INSTALL=(.*)/ =~ line v_fast << " CONFIG[\"INSTALL\"] = " + $1 + "\n" end # break if /^CEOF/ end -srcdir = File.expand_path(srcdir) -v_fast.unshift(" CONFIG[\"srcdir\"] = \"" + srcdir + "\"\n") - v_fast.collect! do |x| if /"prefix"/ === x x.sub(/= (.*)/, '= (TOPDIR || DESTDIR + \1)') @@ -111,7 +109,7 @@ print <