mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
extmk.rb: fix conflict of timestamp files
* ext/extmk.rb (timestamp_file): move extmk.rb specific tricks from lib/mkmf.rb. keep RUBYCOMMONDIR prefix not to conflict with a timestamp file in the toplevel. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
cea6c9d2f5
commit
c06ec0bc3d
3 changed files with 16 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
Fri Sep 2 00:55:11 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* ext/extmk.rb (timestamp_file): move extmk.rb specific tricks
|
||||
from lib/mkmf.rb. keep RUBYCOMMONDIR prefix not to conflict
|
||||
with a timestamp file in the toplevel.
|
||||
|
||||
Thu Sep 1 14:24:16 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* ext/extmk.rb (gems): move dirty hacks for bundled gems from
|
||||
|
|
12
ext/extmk.rb
12
ext/extmk.rb
|
@ -548,6 +548,12 @@ gems = Dir.glob(File.join(ext_prefix, ($extension || ''), '**/extconf.rb')).coll
|
|||
with_config(ext, &cond)
|
||||
}.sort
|
||||
|
||||
extend Module.new {
|
||||
def timestamp_file(name, target_prefix = nil)
|
||||
super.sub(%r[/\.extout\.(?:-\.)?], '/.')
|
||||
end
|
||||
}
|
||||
|
||||
dir = Dir.pwd
|
||||
FileUtils::makedirs('ext')
|
||||
Dir::chdir('ext')
|
||||
|
@ -570,7 +576,7 @@ Dir.chdir('gems')
|
|||
extout = $extout
|
||||
unless gems.empty?
|
||||
def self.timestamp_file(name, target_prefix = nil)
|
||||
name = @sodir if name == '$(TARGET_SO_DIR)'
|
||||
name = "$(arch)/gems/#{@gemname}" if name == '$(TARGET_SO_DIR)'
|
||||
super
|
||||
end
|
||||
|
||||
|
@ -578,7 +584,7 @@ unless gems.empty?
|
|||
super(*args) do |conf|
|
||||
conf.find do |s|
|
||||
s.sub!(/^(TARGET_SO_DIR *= *)\$\(RUBYARCHDIR\)/) {
|
||||
$1 + @sodir
|
||||
"#{$1}$(extout)/gems/$(arch)/#{@gemname}"
|
||||
}
|
||||
end
|
||||
conf << %{
|
||||
|
@ -598,7 +604,7 @@ $(build_complete): $(TARGET_SO)
|
|||
end
|
||||
gems.each do |d|
|
||||
$extout = extout.dup
|
||||
@sodir = "$(extout)/gems/$(arch)/#{d[%r{\A[^/]+}]}"
|
||||
@gemname = d[%r{\A[^/]+}]
|
||||
extmake(d, 'gems')
|
||||
end
|
||||
$extout = extout
|
||||
|
|
|
@ -2025,9 +2025,9 @@ preload = #{defined?($preload) && $preload ? $preload.join(' ') : ''}
|
|||
pat[n] = $` if /\$\(target_prefix\)\z/ =~ d
|
||||
end
|
||||
name = name.gsub(/\$\((#{pat.keys.join("|")})\)/) {pat[$1]+target_prefix}
|
||||
name.sub!(/\A\$\((?:extout|RUBYCOMMONDIR)\)\/*/, '')
|
||||
name.sub!(/(\$\((?:site)?arch\))\/*/, '')
|
||||
arch = $1 || ''
|
||||
name.chomp!('/')
|
||||
name = name.gsub(/(\$[({]|[})])|(\/+)|[^-.\w]+/) {$1 ? "" : $2 ? ".-." : "_"}
|
||||
File.join("$(TIMESTAMP_DIR)", arch, "#{name.sub(/\A(?=.)/, '.')}.time")
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue