diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Makefile.in | 3 | ||||
-rw-r--r-- | mkconfig.rb | 37 |
3 files changed, 29 insertions, 17 deletions
@@ -1,3 +1,9 @@ +Fri Nov 11 08:20:56 2005 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * Makefile.in (OUTFLAG): keep trailing spaces. [ruby-dev:27666] + + * mkconfig.rb: substitution refereces added. + Fri Nov 11 07:39:49 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp> * configure.in: undef HAVE_LINK on BeOS. (link(2) always returns diff --git a/Makefile.in b/Makefile.in index ee0a1275e9..6dfeb1c38d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -30,7 +30,8 @@ RDOCTARGET = @RDOCTARGET@ EXTOUT = @EXTOUT@ RIDATADIR = $(DESTDIR)$(datadir)/ri/$(MAJOR).$(MINOR)/system -OUTFLAG = -o +empty = +OUTFLAG = @OUTFLAG@$(empty) CFLAGS = @CFLAGS@ @XCFLAGS@ @ARCH_FLAG@ CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ LDFLAGS = @STATIC@ $(CFLAGS) @LDFLAGS@ diff --git a/mkconfig.rb b/mkconfig.rb index 4a8062e9fa..0060b608b3 100644 --- a/mkconfig.rb +++ b/mkconfig.rb @@ -16,10 +16,10 @@ unless File.directory?(dir = File.dirname(rbconfig_rb)) end version = RUBY_VERSION -rbconfig_rb_tmp = rbconfig_rb + '.tmp' -config = open(rbconfig_rb_tmp, "w") -$orgout = $stdout.dup -$stdout.reopen(config) +def (config = "").write(arg) + concat(arg.to_s) +end +$stdout = config fast = {'prefix'=>TRUE, 'ruby_install_name'=>TRUE, 'INSTALL'=>TRUE, 'EXEEXT'=>TRUE} print %[ @@ -120,10 +120,13 @@ print <<EOS val.gsub!(/\\$\\$|\\$\\(([^()]+)\\)|\\$\\{([^{}]+)\\}/) do |var| if !(v = $1 || $2) '$' - elsif key = config[v] + elsif key = config[v = v[/\\A[^:]+(?=(?::(.*?)=(.*))?\\z)/]] + pat, sub = $1, $2 config[v] = false Config::expand(key, config) config[v] = key + key = key.gsub(/\#{Regexp.quote(pat)}(?=\\s|\\z)/n) {sub} if pat + key else var end @@ -136,17 +139,19 @@ print <<EOS end CROSS_COMPILING = nil unless defined? CROSS_COMPILING EOS -$stdout.flush -$stdout.reopen($orgout) -config.close -if $timestamp and - File.exist?(rbconfig_rb) and - FileUtils.compare_file(rbconfig_rb, rbconfig_rb_tmp) - puts "#{rbconfig_rb} unchanged" - File.unlink(rbconfig_rb_tmp) -else - puts "#{rbconfig_rb} updated" - File.rename(rbconfig_rb_tmp, rbconfig_rb) + +$stdout = STDOUT +mode = IO::RDWR|IO::CREAT +mode |= IO::BINARY if defined?(IO::BINARY) +open(rbconfig_rb, mode) do |f| + if $timestamp and f.stat.size == config.size and f.read == config + puts "#{rbconfig_rb} unchanged" + else + puts "#{rbconfig_rb} updated" + f.rewind + f.truncate(0) + f.print(config) + end end if String === $timestamp FileUtils.touch($timestamp) |