diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-09 18:01:26 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-09 18:01:26 +0000 |
commit | 8191f129b5607d4b4a2ae71625eac1ebc8d98ef0 (patch) | |
tree | 2c52f83aa140b6b4b2983217eb1184d975d4f799 /mkconfig.rb | |
parent | 7bce5959703d814e62f0edc7408d157fca49d38b (diff) | |
download | ruby-8191f129b5607d4b4a2ae71625eac1ebc8d98ef0.tar.gz |
* instruby.rb, mkconfig.rb: deal with --program-transform-name
better. now supports s, y commands and single addressing.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'mkconfig.rb')
-rwxr-xr-x | mkconfig.rb | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/mkconfig.rb b/mkconfig.rb index d715cc40d9..2a1ec927f2 100755 --- a/mkconfig.rb +++ b/mkconfig.rb @@ -83,12 +83,33 @@ File.foreach "config.status" do |line| when /^\$\{ac_\w+\}$/; next when /^\$ac_\w+$/; next end - if /^program_transform_name$/ =~ name and /^s(\\?.)(.*)\1$/ =~ val - next if $install_name - sep = %r"#{Regexp.quote($1)}" - ptn = $2.gsub(/\$\$/, '$').split(sep, 2) - name = "ruby_install_name" - val = "ruby".sub(/#{ptn[0]}/, ptn[1]) + if /^program_transform_name$/ =~ name + val.sub!(/\As(\W)(?:\^|\$\$)\1\1(;|\z)/, '') + if val.empty? + $install_name ||= "ruby" + next + end + unless $install_name + $install_name = "ruby" + val.gsub!(/\$\$/, '$') + val.scan(%r[\G[\s;]*(/(?:\\.|[^/])*/)?([sy])(\W)((?:\\.|(?!\3).)*)\3((?:\\.|(?!\3).)*)\3([gi]*)]) do + |addr, cmd, sep, pat, rep, opt| + if addr + Regexp.new(addr[/\A\/(.*)\/\z/, 1]) =~ $install_name or next + end + case cmd + when 's' + pat = Regexp.new(pat, opt.include?('i')) + if opt.include?('g') + $install_name.gsub!(pat, rep) + else + $install_name.sub!(pat, rep) + end + when 'y' + $install_name.tr!(Regexp.quote(pat), rep) + end + end + end end val.gsub!(/ +(?!-)/, "=") if name == "configure_args" && /mswin32/ =~ RUBY_PLATFORM val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump |