X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=rake%2Fconfiguretask.rb;h=b673c84a8b45fa770a75b23fc999443a76b1d24a;hb=HEAD;hp=2078da41a1eada92eb991b0237d91293732750c4;hpb=5aa77e9f9e76e9e05a36e16cfb494e9aad953665;p=ruby-vorbistagger.git diff --git a/rake/configuretask.rb b/rake/configuretask.rb index 2078da4..b673c84 100644 --- a/rake/configuretask.rb +++ b/rake/configuretask.rb @@ -23,7 +23,6 @@ require "rake/tasklib" require "rake/clean" require "yaml" -require "tempfile" require "fileutils" module Rake @@ -140,16 +139,13 @@ module Rake protected def can_exec_binary?(bin) fork do - tf = Tempfile.open("configuretask") - STDOUT.reopen(tf) - STDERR.reopen(tf) + STDOUT.reopen("/dev/null") + STDERR.reopen("/dev/null") begin exec(bin) rescue SystemCallError exit 255 - ensure - tf.close end end @@ -182,17 +178,23 @@ module Rake def invoke return false unless can_exec_command? - [:version, :cflags, :libs].each do |f| - @result[f] = lookup_flags(f) + begin + [:version, :cflags, :libs].each do |f| + @result[f] = lookup_flags(f) + end + rescue Exception + @result.clear end - true + !@result.empty? end protected def lookup_flags(f) tmp = `#{@command} --#{f}`.strip - $?.exitstatus.zero? ? tmp : nil + + raise unless $?.exitstatus.zero? + tmp end private @@ -214,7 +216,9 @@ module Rake tmp = `#{@command} --silence-errors --#{f} #{@name}`. strip.tr("\n", "/") - $?.exitstatus.zero? ? tmp : nil + + raise unless $?.exitstatus.zero? + tmp end end