From 0bb45af1031aab51b05fecd4dff00b9f42359a81 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 10 Feb 2005 03:09:27 +0000 Subject: [PATCH] * ext/extmk.rb (extract_makefile): default to true if not compiled previously. * ext/extmk.rb (extmake): create dummy makefile if extconf failed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ ext/extmk.rb | 12 ++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1da25b692f..f08d14f19c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Feb 10 12:09:16 2005 Nobuyoshi Nakada + + * ext/extmk.rb (extract_makefile): default to true if not compiled + previously. + + * ext/extmk.rb (extmake): create dummy makefile if extconf failed. + Thu Feb 10 12:07:10 2005 Nobuyoshi Nakada * win32/win32.c (init_stdhandle): assign standard file handles. diff --git a/ext/extmk.rb b/ext/extmk.rb index 4e692209ee..6cd7ed5232 100644 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -45,21 +45,20 @@ def relative_from(path, base) end end -def extract_makefile(makefile, force = false) +def extract_makefile(makefile, keep = true) m = File.read(makefile) if !(target = m[/^TARGET[ \t]*=[ \t]*(\S*)/, 1]) - return force + return keep end installrb = {} m.scan(/^install-rb-default:[ \t]*(\S+)\n\1:[ \t]*(\S+)/) {installrb[$2] = $1} oldrb = installrb.keys.sort newrb = install_rb(nil, "").collect {|d, *f| f}.flatten.sort - unless (oldrb -= newrb).empty? - FileUtils.rm_f(oldrb.collect {|old| Config.expand(installrb[old])}, :verbose => true) - return false - end if target_prefix = m[/^target_prefix[ \t]*=[ \t]*\/(.*)/, 1] target = "#{target_prefix}/#{target}" + unless (oldrb -= newrb).empty? + return false + end end $target = target /^STATIC_LIB[ \t]*=[ \t]*\S+/ =~ m or $static = nil @@ -113,6 +112,7 @@ def extmake(target) !(t = modified?(makefile, MTIMES)) || %W"#{$srcdir}/makefile.rb #{$srcdir}/extconf.rb #{$srcdir}/depend".any? {|f| modified?(f, [t])}) then + ok = false init_mkmf Logging::logfile 'mkmf.log' rm_f makefile