diff options
author | Kouhei Sutou <kou@clear-code.com> | 2015-03-25 20:46:17 +0900 |
---|---|---|
committer | Kouhei Sutou <kou@clear-code.com> | 2015-03-25 20:46:17 +0900 |
commit | 9019188a621fe9f05ac3e9b657f7fb72dbc9d009 (patch) | |
tree | 3a5583b7ef4032e314e864d4b1901c506671c107 | |
parent | 4c58f5da16eecee5946654530c2e23bee8fcae6c (diff) | |
download | rake-compiler-9019188a621fe9f05ac3e9b657f7fb72dbc9d009.tar.gz |
Find make program from PATH
-rw-r--r-- | lib/rake/extensiontask.rb | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/lib/rake/extensiontask.rb b/lib/rake/extensiontask.rb index 9b4bd43..030af96 100644 --- a/lib/rake/extensiontask.rb +++ b/lib/rake/extensiontask.rb @@ -6,12 +6,6 @@ require "rubygems/package_task" module Rake class ExtensionTask < BaseExtensionTask - MAKE_PROGRAM_DETECTION = { - 'gmake -v' => 'gmake', - 'make -v' => 'make', - 'command -v make' => 'make' - }.freeze - attr_accessor :config_script attr_accessor :cross_compile attr_accessor :cross_platform @@ -458,9 +452,7 @@ Java extension should be preferred. if RUBY_PLATFORM =~ /mswin/ then 'nmake' else - ENV['MAKE'] || MAKE_PROGRAM_DETECTION.find { |test, program| - system("#{test} >> #{dev_null} 2>&1") - }[1] + ENV['MAKE'] || find_make end end @@ -471,8 +463,18 @@ Java extension should be preferred. @make end - def dev_null - windows? ? 'NUL' : '/dev/null' + def find_make + candidates = ["gmake", "make"] + paths = (ENV["PATH"] || "").split(File::PATH_SEPARATOR) + + candidates.each do |candidate| + paths.each do |path| + make = File.join(path, candidate) + return make if File.executable?(make) + end + end + + nil end def compiled_files |