summaryrefslogtreecommitdiff
path: root/ext/extmk.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-03-03 08:10:10 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-03-03 08:10:10 +0000
commit27cc677088c21785815b1c137ec8e65e51c2dc83 (patch)
tree3b6bee38619002b3daf5ada19ff0cf1aeb31bf70 /ext/extmk.rb
parentdba06de110c9ba74a58253f5be8a9293980d7bff (diff)
* ext/extmk.rb (extmake): removes object files no longer used and
files to be removed by old distclean. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/extmk.rb')
-rw-r--r--ext/extmk.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 509c93e46f..10cb056302 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -80,6 +80,7 @@ def extract_makefile(makefile, keep = true)
end
$objs = (m[/^OBJS[ \t]*=[ \t](.*)/, 1] || "").split
$srcs = (m[/^SRCS[ \t]*=[ \t](.*)/, 1] || "").split
+ $distcleanfiles = (m[/^DISTCLEANFILES[ \t]*=[ \t](.*)/, 1] || "").split
$LOCAL_LIBS = m[/^LOCAL_LIBS[ \t]*=[ \t]*(.*)/, 1] || ""
$LIBPATH = Shellwords.shellwords(m[/^libpath[ \t]*=[ \t]*(.*)/, 1] || "") - %w[$(libdir) $(topdir)]
true
@@ -139,6 +140,7 @@ def extmake(target)
$extconf_h = nil
ok &&= extract_makefile(makefile)
old_objs = $objs
+ old_cleanfiles = $distcleanfiles
conf = ["#{$srcdir}/makefile.rb", "#{$srcdir}/extconf.rb"].find {|f| File.exist?(f)}
if (($extconf_h && !File.exist?($extconf_h)) ||
!(t = modified?(makefile, MTIMES)) ||
@@ -179,7 +181,8 @@ def extmake(target)
args += ["static"] unless $clean
$extlist.push [$static, $target, File.basename($target), $preload]
end
- FileUtils.rm_f($objs - old_objs)
+ FileUtils.rm_f(old_cleanfiles - $distcleanfiles)
+ FileUtils.rm_f(old_objs - $objs)
unless system($make, *args)
$ignore or $continue or return false
end