summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-09-01 15:55:13 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-09-01 15:55:13 +0000
commitc06ec0bc3d9f5ddf5e7577303025ef208fdccab2 (patch)
treef5192495dc1236ff22aac3bb3e8749ac089fc0a8 /ext
parentcea6c9d2f548d3fea8af0d912306b271d7ec8001 (diff)
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
Diffstat (limited to 'ext')
-rwxr-xr-xext/extmk.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 0a7c589063f..2f320a6737c 100755
--- a/ext/extmk.rb
+++ b/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