From b0e7ec8c9a06fa975cff864107af1e1c0780f19f Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 28 May 2013 02:30:13 +0000 Subject: extmk.rb: untouch makefiles * ext/extmk.rb (extmake): leave makefiles untouched if the content is not changed, to get rid of unnecessary re-linking. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ext/extmk.rb | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 91fc24e4d3..bdd80a60d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue May 28 11:30:02 2013 Nobuyoshi Nakada + + * ext/extmk.rb (extmake): leave makefiles untouched if the content is + not changed, to get rid of unnecessary re-linking. + Tue May 28 03:11:02 2013 Koichi Sasada * ext/objspace/gc_hook.c, ext/objspace/objspace.c: add new methods to diff --git a/ext/extmk.rb b/ext/extmk.rb index eda487c30e..1ca5efd52c 100755 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -222,14 +222,14 @@ def extmake(target) ok &&= File.open(makefile){|f| !f.gets[DUMMY_SIGNATURE]} ok = yield(ok) if block_given? if ok - open(makefile, "r+") do |f| - s = f.read.sub!(/^(static:)\s.*/, '\1 all') + open(makefile, "r+b") do |f| + s = f.read.sub!(/^(static:)\s(?!all\b).*/, '\1 all') or break f.rewind f.print(s) f.truncate(f.pos) end else - open(makefile, "w") do |f| + open(makefile, "wb") do |f| f.puts "# " + DUMMY_SIGNATURE f.print(*dummy_makefile(CONFIG["srcdir"])) end -- cgit v1.2.3