From 0b4e4b20cb02776b95093933596c633d10b46986 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 3 Jul 2014 03:38:13 +0000 Subject: extmk.rb: GNU make -C option * ext/extmk.rb: use -C option for GNU make instead of shell. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- common.mk | 3 ++- defs/gmake.mk | 2 ++ ext/extmk.rb | 13 +++++++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/common.mk b/common.mk index 9ddabc8..5542b55 100644 --- a/common.mk +++ b/common.mk @@ -119,7 +119,8 @@ SCRIPT_ARGS = --dest-dir="$(DESTDIR)" \ --mflags="$(MFLAGS)" \ --make-flags="$(MAKEFLAGS)" EXTMK_ARGS = $(SCRIPT_ARGS) --extension $(EXTS) --extstatic $(EXTSTATIC) \ - --make-flags="V=$(V) MINIRUBY='$(MINIRUBY)'" -- + --make-flags="V=$(V) MINIRUBY='$(MINIRUBY)'" --gnumake=$(gnumake) \ + -- INSTRUBY = $(SUDO) $(RUNRUBY) -r./$(arch)-fake $(srcdir)/tool/rbinstall.rb INSTRUBY_ARGS = $(SCRIPT_ARGS) \ --data-mode=$(INSTALL_DATA_MODE) \ diff --git a/defs/gmake.mk b/defs/gmake.mk index 3ee3408..f5033b2 100644 --- a/defs/gmake.mk +++ b/defs/gmake.mk @@ -1,4 +1,6 @@ # -*- makefile-gmake -*- +gnumake = yes + TEST_TARGETS := $(filter check test check% test% btest%,$(MAKECMDGOALS)) TEST_TARGETS += $(subst check,test-all,$(patsubst check-%,test-%,$(TEST_TARGETS))) TEST_TARGETS := $(patsubst test-%,yes-test-%,$(patsubst btest-%,yes-btest-%,$(TEST_TARGETS))) diff --git a/ext/extmk.rb b/ext/extmk.rb index 464c847..b11010f 100755 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -371,6 +371,9 @@ def parse_args() opts.on('--command-output=FILE', String) do |v| $command_output = v end + opts.on('--gnumake=yes|no', true) do |v| + $gnumake = v + end end begin $optparser.parse!(ARGV) @@ -718,10 +721,16 @@ if $configure_only and $command_output mf.puts "#{tgt}:\n\t#{submake} $@" end mf.puts - exec = config_string("exec") {|str| str + " "} + if $gnumake == "yes" + submake = "$(MAKE) -C $(@D)" + else + submake = "cd $(@D) && " + config_string("exec") {|str| submake << str << " "} + submake << "$(MAKE)" + end targets.each do |tgt| exts.each do |d| - mf.puts "#{d[0..-2]}#{tgt}:\n\t$(Q)cd $(@D) && #{exec}$(MAKE) $(MFLAGS) V=$(V) $(@F)" + mf.puts "#{d[0..-2]}#{tgt}:\n\t$(Q)#{submake} $(MFLAGS) V=$(V) $(@F)" end end end -- cgit v1.1