diff --git a/common.mk b/common.mk index 9ddabc8563..5542b5537c 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 3ee34083f6..f5033b2245 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 464c84725b..b11010feeb 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