summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKouhei Sutou <kou@clear-code.com>2015-03-25 20:46:17 +0900
committerKouhei Sutou <kou@clear-code.com>2015-03-25 20:46:17 +0900
commit9019188a621fe9f05ac3e9b657f7fb72dbc9d009 (patch)
tree3a5583b7ef4032e314e864d4b1901c506671c107
parent4c58f5da16eecee5946654530c2e23bee8fcae6c (diff)
downloadrake-compiler-9019188a621fe9f05ac3e9b657f7fb72dbc9d009.tar.gz
Find make program from PATH
-rw-r--r--lib/rake/extensiontask.rb24
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