зеркало из https://github.com/github/ruby.git
mkmf.rb: TARGET_SO_DIR
* ext/extmk.rb: move TARGET_SO_DIR stuffs to mkmf.rb. * lib/mkmf.rb (create_makefile): create target shared object files under $(TARGET_SO_DIR) which is $sodir if it is defined with $extout. [ruby-core:77058] [Bug #12681] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
506b45db9c
Коммит
1b6a42d968
|
@ -1,3 +1,11 @@
|
||||||
|
Wed Aug 31 15:36:10 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* ext/extmk.rb: move TARGET_SO_DIR stuffs to mkmf.rb.
|
||||||
|
|
||||||
|
* lib/mkmf.rb (create_makefile): create target shared object files
|
||||||
|
under $(TARGET_SO_DIR) which is $sodir if it is defined with
|
||||||
|
$extout. [ruby-core:77058] [Bug #12681]
|
||||||
|
|
||||||
Wed Aug 31 01:56:55 2016 Yuichiro Kaneko <yui-knk@ruby-lang.org>
|
Wed Aug 31 01:56:55 2016 Yuichiro Kaneko <yui-knk@ruby-lang.org>
|
||||||
|
|
||||||
* doc/extension.ja.rdoc: [DOC] Fix a typo. [ci skip]
|
* doc/extension.ja.rdoc: [DOC] Fix a typo. [ci skip]
|
||||||
|
|
16
ext/extmk.rb
16
ext/extmk.rb
|
@ -131,7 +131,7 @@ def extract_makefile(makefile, keep = true)
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
def extmake(target, basedir = (maybestatic = 'ext'), &block)
|
def extmake(target, basedir = (maybestatic = 'ext'))
|
||||||
unless $configure_only || verbose?
|
unless $configure_only || verbose?
|
||||||
print "#{$message} #{target}\n"
|
print "#{$message} #{target}\n"
|
||||||
$stdout.flush
|
$stdout.flush
|
||||||
|
@ -225,7 +225,7 @@ def extmake(target, basedir = (maybestatic = 'ext'), &block)
|
||||||
load $0 = conf
|
load $0 = conf
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
create_makefile(target, &block)
|
create_makefile(target)
|
||||||
end
|
end
|
||||||
$defs << "-DRUBY_EXPORT" if $static
|
$defs << "-DRUBY_EXPORT" if $static
|
||||||
ok = File.exist?(makefile)
|
ok = File.exist?(makefile)
|
||||||
|
@ -243,7 +243,6 @@ def extmake(target, basedir = (maybestatic = 'ext'), &block)
|
||||||
ok &&= File.open(makefile){|f| s = f.gets and !s[DUMMY_SIGNATURE]}
|
ok &&= File.open(makefile){|f| s = f.gets and !s[DUMMY_SIGNATURE]}
|
||||||
unless ok
|
unless ok
|
||||||
mf = ["# #{DUMMY_SIGNATURE}\n", *dummy_makefile(CONFIG["srcdir"])].join("")
|
mf = ["# #{DUMMY_SIGNATURE}\n", *dummy_makefile(CONFIG["srcdir"])].join("")
|
||||||
mf = yield mf if block
|
|
||||||
atomic_write_open(makefile) do |f|
|
atomic_write_open(makefile) do |f|
|
||||||
f.print(mf)
|
f.print(mf)
|
||||||
end
|
end
|
||||||
|
@ -571,15 +570,8 @@ Dir.chdir('gems')
|
||||||
extout = $extout
|
extout = $extout
|
||||||
gems.each do |d|
|
gems.each do |d|
|
||||||
$extout = extout.dup
|
$extout = extout.dup
|
||||||
extmake(d, 'gems') do |mf|
|
$sodir = "$(extout)/gems/$(arch)/#{d[%r{\A[^/]+}]}"
|
||||||
mf.sub!(/^RUBYARCHDIR *= *(\$\(extout\))\/(\$\(arch\))(.*)/) {
|
extmake(d, 'gems')
|
||||||
"TARGET_SO_DIR = #$1/gems/#$2/#{d[%r{\A[^/]+}]}#$3\n" \
|
|
||||||
"TARGET_SO_TIME = .gems.-.arch.-.#{d[/\A[^\/]+/]}.time"
|
|
||||||
}
|
|
||||||
mf.gsub!(/\bRUBYARCHDIR\b/, 'TARGET_SO_DIR')
|
|
||||||
mf.gsub!(/\.TARGET_SO_DIR\.time/, '$(TARGET_SO_TIME)')
|
|
||||||
mf
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
$extout = extout
|
$extout = extout
|
||||||
Dir.chdir('../ext')
|
Dir.chdir('../ext')
|
||||||
|
|
12
lib/mkmf.rb
12
lib/mkmf.rb
|
@ -2303,9 +2303,13 @@ TIMESTAMP_DIR = #{$extout ? '$(extout)/.timestamp' : '.'}
|
||||||
" #"
|
" #"
|
||||||
# TODO: fixme
|
# TODO: fixme
|
||||||
install_dirs.each {|d| mfile.print("%-14s= %s\n" % d) if /^[[:upper:]]/ =~ d[0]}
|
install_dirs.each {|d| mfile.print("%-14s= %s\n" % d) if /^[[:upper:]]/ =~ d[0]}
|
||||||
n = ($extout ? '$(RUBYARCHDIR)/' : '') + '$(TARGET)'
|
sodir = !$extout ? '' :
|
||||||
|
$sodir ? $sodir+target_prefix :
|
||||||
|
'$(RUBYARCHDIR)'
|
||||||
|
n = '$(TARGET_SO_DIR)$(TARGET)'
|
||||||
mfile.print "
|
mfile.print "
|
||||||
TARGET_SO = #{($extout ? '$(RUBYARCHDIR)/' : '')}$(DLLIB)
|
TARGET_SO_DIR =#{(sodir ? " #{sodir}/" : '')}
|
||||||
|
TARGET_SO = $(TARGET_SO_DIR)$(DLLIB)
|
||||||
CLEANLIBS = $(TARGET_SO) #{config_string('cleanlibs') {|t| t.gsub(/\$\*/) {n}}}
|
CLEANLIBS = $(TARGET_SO) #{config_string('cleanlibs') {|t| t.gsub(/\$\*/) {n}}}
|
||||||
CLEANOBJS = *.#{$OBJEXT} #{config_string('cleanobjs') {|t| t.gsub(/\$\*/, "$(TARGET)#{deffile ? '-$(arch)': ''}")} if target} *.bak
|
CLEANOBJS = *.#{$OBJEXT} #{config_string('cleanobjs') {|t| t.gsub(/\$\*/, "$(TARGET)#{deffile ? '-$(arch)': ''}")} if target} *.bak
|
||||||
|
|
||||||
|
@ -2331,7 +2335,7 @@ static: #{$extmk && !$static ? "all" : "$(STATIC_LIB)#{!$extmk ? " install-rb" :
|
||||||
end
|
end
|
||||||
dirs = []
|
dirs = []
|
||||||
mfile.print "install: install-so install-rb\n\n"
|
mfile.print "install: install-so install-rb\n\n"
|
||||||
sodir = (dir = "$(RUBYARCHDIR)").dup
|
dir = sodir.dup
|
||||||
mfile.print("install-so: ")
|
mfile.print("install-so: ")
|
||||||
if target
|
if target
|
||||||
f = "$(DLLIB)"
|
f = "$(DLLIB)"
|
||||||
|
@ -2450,7 +2454,7 @@ site-install-rb: install-rb
|
||||||
mfile.print "$(TARGET_SO): "
|
mfile.print "$(TARGET_SO): "
|
||||||
mfile.print "$(DEFFILE) " if makedef
|
mfile.print "$(DEFFILE) " if makedef
|
||||||
mfile.print "$(OBJS) Makefile"
|
mfile.print "$(OBJS) Makefile"
|
||||||
mfile.print " #{timestamp_file('$(RUBYARCHDIR)', target_prefix)}" if $extout
|
mfile.print " #{timestamp_file(sodir, target_prefix)}" if $extout
|
||||||
mfile.print "\n"
|
mfile.print "\n"
|
||||||
mfile.print "\t$(ECHO) linking shared-object #{target_prefix.sub(/\A\/(.*)/, '\1/')}$(DLLIB)\n"
|
mfile.print "\t$(ECHO) linking shared-object #{target_prefix.sub(/\A\/(.*)/, '\1/')}$(DLLIB)\n"
|
||||||
mfile.print "\t-$(Q)$(RM) $(@#{sep})\n"
|
mfile.print "\t-$(Q)$(RM) $(@#{sep})\n"
|
||||||
|
|
Загрузка…
Ссылка в новой задаче