From 9648e68d88236f844ad927a636793ff7b73b9fa6 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 19 Feb 2005 01:43:58 +0000 Subject: [PATCH] * ext/extmk.rb (extract_makefile): remove no longer existing installed files. * lib/mkmf.rb (install_dirs): return installation directory list. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ ext/extmk.rb | 10 ++++++++-- lib/mkmf.rb | 50 ++++++++++++++++++++++++++++---------------------- 3 files changed, 43 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9ee46ad2a8..46be40b48a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sat Feb 19 10:43:46 2005 Nobuyoshi Nakada + + * ext/extmk.rb (extract_makefile): remove no longer existing installed + files. + + * lib/mkmf.rb (install_dirs): return installation directory list. + Sat Feb 19 01:28:56 2005 Hirokazu Yamamoto * ext/bigdecimal/lib/bigdecimal/newton.rb: resolve LoadError. diff --git a/ext/extmk.rb b/ext/extmk.rb index 6cd7ed5232..af292624ab 100644 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -56,9 +56,15 @@ def extract_makefile(makefile, keep = true) newrb = install_rb(nil, "").collect {|d, *f| f}.flatten.sort if target_prefix = m[/^target_prefix[ \t]*=[ \t]*\/(.*)/, 1] target = "#{target_prefix}/#{target}" - unless (oldrb -= newrb).empty? - return false + end + unless oldrb == newrb + if $extout + newrb.each {|f| installrb.delete(f)} + config = CONFIG.dup + install_dirs(target_prefix).each {|var, val| config[var] = val} + FileUtils.rm_f(installrb.values.collect {|f| Config.expand(f, config)}, verbose: true) end + return false end $target = target /^STATIC_LIB[ \t]*=[ \t]*\S+/ =~ m or $static = nil diff --git a/lib/mkmf.rb b/lib/mkmf.rb index a6f77e043c..23d94c7617 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -74,6 +74,32 @@ INSTALL_DIRS = [ [dir_re('sitearchdir'), "$(RUBYARCHDIR)"] ] +def install_dirs(target_prefix = nil) + if $extout + dirs = [ + ['RUBYCOMMONDIR', '$(extout)'], + ['RUBYLIBDIR', '$(extout)$(target_prefix)'], + ['RUBYARCHDIR', '$(extout)/$(arch)$(target_prefix)'], + ['extout', "#$extout"], + ['extout_prefix', "#$extout_prefix"], + ] + elsif $extmk + dirs = [ + ['RUBYCOMMONDIR', '$(rubylibdir)'], + ['RUBYLIBDIR', '$(rubylibdir)$(target_prefix)'], + ['RUBYARCHDIR', '$(archdir)$(target_prefix)'], + ] + else + dirs = [ + ['RUBYCOMMONDIR', '$(sitedir)$(target_prefix)'], + ['RUBYLIBDIR', '$(sitelibdir)$(target_prefix)'], + ['RUBYARCHDIR', '$(sitearchdir)$(target_prefix)'], + ] + end + dirs << ['target_prefix', (target_prefix ? "/#{target_prefix}" : "")] + dirs +end + def map_dir(dir, map = nil) map ||= INSTALL_DIRS map.inject(dir) {|dir, (orig, new)| dir.gsub(orig, new)} @@ -896,9 +922,6 @@ def create_makefile(target, srcprefix = nil) if target.include?('/') target_prefix, target = File.split(target) - target_prefix[0,0] = '/' - else - target_prefix = "" end srcprefix ||= '$(srcdir)' @@ -961,26 +984,9 @@ OBJS = #{$objs} TARGET = #{target} DLLIB = #{dllib} STATIC_LIB = #{staticlib unless $static.nil?} + } - if $extout - mfile.print %{ -RUBYCOMMONDIR = $(extout) -RUBYLIBDIR = $(extout)$(target_prefix) -RUBYARCHDIR = $(extout)/$(arch)$(target_prefix) -} - elsif $extmk - mfile.print %{ -RUBYCOMMONDIR = $(rubylibdir) -RUBYLIBDIR = $(rubylibdir)$(target_prefix) -RUBYARCHDIR = $(archdir)$(target_prefix) -} - else - mfile.print %{ -RUBYCOMMONDIR = $(sitedir)$(target_prefix) -RUBYLIBDIR = $(sitelibdir)$(target_prefix) -RUBYARCHDIR = $(sitearchdir)$(target_prefix) -} - end + install_dirs.each {|d| mfile.print("%-14s= %s\n" % d) if /^[[:upper:]]/ =~ d[0]} n = ($extout ? '$(RUBYARCHDIR)/' : '') + '$(TARGET).' mfile.print %{ TARGET_SO = #{($extout ? '$(RUBYARCHDIR)/' : '')}$(DLLIB)