From 499a1e5b3e438a4c9d4a240895cc56c41e1280d5 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 10 Feb 2017 06:12:22 +0000 Subject: MFLAGS for nmake * common.mk (mflags): pass make flags to sub-makes, for nmake which cannot pass them by the environment variable. * defs/gmake.mk (mflags): filter out -j option for sub-makes. * template/exts.mk.tmpl (MFLAGS): extract MFLAGS from sub extmk files for nmake. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- Makefile.in | 2 +- common.mk | 31 ++++++++++++++++--------------- cygwin/GNUmakefile.in | 2 -- defs/gmake.mk | 1 + template/GNUmakefile.in | 2 -- template/exts.mk.tmpl | 16 ++++++++++------ 6 files changed, 28 insertions(+), 26 deletions(-) diff --git a/Makefile.in b/Makefile.in index 012ed954d2..569581efef 100644 --- a/Makefile.in +++ b/Makefile.in @@ -423,7 +423,7 @@ clean-ext distclean-ext realclean-ext:: cd ..; \ for dir do \ echo $(@:-ext=)ing "$$dir"; \ - (cd "ext/$$dir" && exec $(MAKE) $(@:-ext=)) && \ + (cd "ext/$$dir" && exec $(MAKE) $(mflags) $(@:-ext=)) && \ case "$@" in \ *distclean-ext*|*realclean-ext*) \ $(RMDIRS) "ext/$$dir" 2> /dev/null || true;; \ diff --git a/common.mk b/common.mk index 36ca2d4066..4e89d9b835 100644 --- a/common.mk +++ b/common.mk @@ -11,6 +11,7 @@ Q = $(Q1:0=@) ECHO0 = $(ECHO1:0=echo) ECHO = @$(ECHO0) +mflags = $(MFLAGS) gnumake_recursive = UNICODE_VERSION = 9.0.0 @@ -68,7 +69,7 @@ EXTSOLIBS = MINIOBJS = $(ARCHMINIOBJS) miniinit.$(OBJEXT) dmyext.$(OBJEXT) miniprelude.$(OBJEXT) ENC_MK = enc.mk MAKE_ENC = -f $(ENC_MK) V="$(V)" UNICODE_HDR_DIR="$(UNICODE_HDR_DIR)" \ - RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" + RUBY="$(MINIRUBY)" MINIRUBY="$(MINIRUBY)" $(mflags) COMMONOBJS = array.$(OBJEXT) \ bignum.$(OBJEXT) \ @@ -213,7 +214,7 @@ exts: build-ext EXTS_MK = exts.mk $(EXTS_MK): ext/configure-ext.mk $(TIMESTAMPDIR)/.$(arch).time $(srcdir)/template/exts.mk.tmpl - $(MAKE) -f ext/configure-ext.mk V=$(V) EXTSTATIC=$(EXTSTATIC) \ + $(Q)$(MAKE) -f ext/configure-ext.mk $(mflags) V=$(V) EXTSTATIC=$(EXTSTATIC) \ gnumake=$(gnumake) EXTLDFLAGS="$(EXTLDFLAGS)" srcdir="$(srcdir)" $(ECHO) generating makefile $@ $(Q)$(MINIRUBY) $(srcdir)/tool/generic_erb.rb -o $@ -c \ @@ -229,7 +230,7 @@ ext/configure-ext.mk: $(PREP) all-incs $(MKFILES) $(RBCONFIG) $(LIBRUBY) configure-ext: $(EXTS_MK) build-ext: $(EXTS_MK) - $(Q)$(MAKE) -f $(EXTS_MK) libdir="$(libdir)" LIBRUBY_EXTS=$(LIBRUBY_EXTS) \ + $(Q)$(MAKE) -f $(EXTS_MK) $(mflags) libdir="$(libdir)" LIBRUBY_EXTS=$(LIBRUBY_EXTS) \ EXTENCS="$(ENCOBJS)" UPDATE_LIBRARIES=no $(EXTSTATIC) ext/extinit.c: $(srcdir)/template/extinit.c.tmpl @@ -246,7 +247,7 @@ objs: $(ALLOBJS) GORUBY = go$(RUBY_INSTALL_NAME) golf: $(LIBRUBY) $(GOLFOBJS) PHONY - $(Q) $(MAKE) MAINOBJ="$(GOLFOBJS)" PROGRAM=$(GORUBY)$(EXEEXT) program + $(Q) $(MAKE) $(mflags) MAINOBJ="$(GOLFOBJS)" PROGRAM=$(GORUBY)$(EXEEXT) program capi: $(CAPIOUT)/.timestamp PHONY $(CAPIOUT)/.timestamp: Doxyfile $(PREP) @@ -924,18 +925,18 @@ $(srcdir)/ext/ripper/ripper.c: $(srcdir)/parse.y id.h $(ECHO) generating $@ $(Q) $(CHDIR) $(@D) && \ sed /AUTOGENERATED/q depend | \ - $(exec) $(MAKE) -f - \ + $(exec) $(MAKE) -f - $(mflags) \ Q=$(Q) ECHO=$(ECHO) RM="$(RM)" top_srcdir=../.. srcdir=. VPATH="$(PWD)" \ RUBY="$(BASERUBY)" PATH_SEPARATOR="$(PATH_SEPARATOR)" $(srcdir)/ext/json/parser/parser.c: $(srcdir)/ext/json/parser/parser.rl $(ECHO) generating $@ - $(Q) $(CHDIR) $(@D) && $(exec) $(MAKE) -f prereq.mk \ + $(Q) $(CHDIR) $(@D) && $(exec) $(MAKE) -f prereq.mk $(mflags) \ Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. BASERUBY="$(BASERUBY)" $(srcdir)/ext/date/zonetab.h: $(srcdir)/ext/date/zonetab.list $(ECHO) generating $@ - $(Q) $(CHDIR) $(@D) && $(exec) $(MAKE) -f prereq.mk \ + $(Q) $(CHDIR) $(@D) && $(exec) $(MAKE) -f prereq.mk $(mflags) \ Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. VPATH=../.. BASERUBY="$(BASERUBY)" $(srcdir)/ext/rbconfig/sizeof/sizes.c: $(srcdir)/ext/rbconfig/sizeof/depend \ @@ -943,7 +944,7 @@ $(srcdir)/ext/rbconfig/sizeof/sizes.c: $(srcdir)/ext/rbconfig/sizeof/depend \ $(ECHO) generating $@ $(Q) $(CHDIR) $(@D) && \ sed '/AUTOGENERATED/q' depend | \ - $(exec) $(MAKE) -f - \ + $(exec) $(MAKE) -f - $(mflags) \ Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. RUBY="$(BASERUBY)" $(@F) $(srcdir)/ext/rbconfig/sizeof/limits.c: $(srcdir)/ext/rbconfig/sizeof/depend \ @@ -951,13 +952,13 @@ $(srcdir)/ext/rbconfig/sizeof/limits.c: $(srcdir)/ext/rbconfig/sizeof/depend \ $(ECHO) generating $@ $(Q) $(CHDIR) $(@D) && \ sed '/AUTOGENERATED/q' depend | \ - $(exec) $(MAKE) -f - \ + $(exec) $(MAKE) -f - $(mflags) \ Q=$(Q) ECHO=$(ECHO) top_srcdir=../../.. srcdir=. VPATH=../../.. RUBY="$(BASERUBY)" $(@F) $(srcdir)/ext/socket/constdefs.c: $(srcdir)/ext/socket/depend $(Q) $(CHDIR) $(@D) && \ sed '/AUTOGENERATED/q' depend | \ - $(exec) $(MAKE) -f - \ + $(exec) $(MAKE) -f - $(mflags) \ Q=$(Q) ECHO=$(ECHO) top_srcdir=../.. srcdir=. VPATH=../.. RUBY="$(BASERUBY)" ## @@ -1031,10 +1032,10 @@ dist: up:: update-remote up:: - -$(Q)$(MAKE) Q=$(Q) REVISION_FORCE=PHONY "$(REVISION_H)" + -$(Q)$(MAKE) $(mflags) Q=$(Q) REVISION_FORCE=PHONY "$(REVISION_H)" up:: - -$(Q)$(MAKE) Q=$(Q) after-update + -$(Q)$(MAKE) $(mflags) Q=$(Q) after-update after-update:: extract-extlibs @@ -1117,7 +1118,7 @@ $(UNICODE_SRC_DATA_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=.unicode-tables.time): $(UNI $(UNICODE_SRC_DATA_DIR)/.unicode-tables.time: $(srcdir)/tool/generic_erb.rb \ $(srcdir)/template/unicode_norm_gen.tmpl - $(Q) $(ALWAYS_UPDATE_UNICODE:yes=exit &&) $(MAKE) Q=$(Q) UNICODE_VERSION=$(UNICODE_VERSION) update-unicode + $(Q) $(ALWAYS_UPDATE_UNICODE:yes=exit &&) $(MAKE) $(mflags) Q=$(Q) UNICODE_VERSION=$(UNICODE_VERSION) update-unicode $(Q) $(BASERUBY) $(srcdir)/tool/generic_erb.rb \ -c -t$@ -o $(srcdir)/lib/unicode_normalize/tables.rb \ -I $(srcdir) \ @@ -1127,7 +1128,7 @@ $(UNICODE_SRC_DATA_DIR)/.unicode-tables.time: $(srcdir)/tool/generic_erb.rb \ # UPDATE_NAME2CTYPE= : toplevel # UPDATE_NAME2CTYPE=yes : sub-make to update name2ctype.h $(UNICODE_HDR_DIR)/$(UPDATE_NAME2CTYPE:yes=.ignore.)name2ctype.h: - $(Q) $(MAKE) Q=$(Q) UPDATE_NAME2CTYPE=yes UNICODE_VERSION=$(UNICODE_VERSION) $@ + $(Q) $(MAKE) $(mflags) Q=$(Q) UPDATE_NAME2CTYPE=yes UNICODE_VERSION=$(UNICODE_VERSION) $@ $(UNICODE_HDR_DIR)/$(UPDATE_NAME2CTYPE:yes=name2ctype.h): \ $(UNICODE_SRC_DATA_DIR)/UnicodeData.txt \ @@ -1146,7 +1147,7 @@ $(UNICODE_HDR_DIR)/$(ALWAYS_UPDATE_UNICODE:yes=casefold.h): \ $(UNICODE_SRC_DATA_DIR)/CaseFolding.txt $(UNICODE_HDR_DIR)/casefold.h: $(srcdir)/enc/unicode/case-folding.rb - $(Q) $(ALWAYS_UPDATE_UNICODE:yes=exit &&) $(MAKE) Q=$(Q) UNICODE_VERSION=$(UNICODE_VERSION) update-unicode + $(Q) $(ALWAYS_UPDATE_UNICODE:yes=exit &&) $(MAKE) $(mflags) Q=$(Q) UNICODE_VERSION=$(UNICODE_VERSION) update-unicode $(MAKEDIRS) $(@D) $(Q) $(BASERUBY) $(srcdir)/enc/unicode/case-folding.rb \ --output-file=$@ \ diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in index c1b4cd63bb..192cf43b37 100644 --- a/cygwin/GNUmakefile.in +++ b/cygwin/GNUmakefile.in @@ -1,5 +1,3 @@ -#override MFLAGS := $(filter-out -j%,$(MFLAGS)) -#override MAKEFLAGS := $(filter-out -j%,$(MAKEFLAGS)) include Makefile ENABLE_SHARED=@ENABLE_SHARED@ diff --git a/defs/gmake.mk b/defs/gmake.mk index 3f2bba4d05..6e7001c216 100644 --- a/defs/gmake.mk +++ b/defs/gmake.mk @@ -1,6 +1,7 @@ # -*- makefile-gmake -*- gnumake = yes override gnumake_recursive := + +mflags := $(filter-out -j%,$(MFLAGS)) CHECK_TARGETS := exam love check% TEST_TARGETS := $(filter check test check% test% btest%,$(MAKECMDGOALS)) diff --git a/template/GNUmakefile.in b/template/GNUmakefile.in index 9cbed68e20..c904d3474e 100644 --- a/template/GNUmakefile.in +++ b/template/GNUmakefile.in @@ -1,5 +1,3 @@ -#override MFLAGS := $(filter-out -j%,$(MFLAGS)) -#override MAKEFLAGS := $(filter-out -j%,$(MAKEFLAGS)) include Makefile -include uncommon.mk include $(srcdir)/defs/gmake.mk diff --git a/template/exts.mk.tmpl b/template/exts.mk.tmpl index bf110c5c94..e4633c415a 100644 --- a/template/exts.mk.tmpl +++ b/template/exts.mk.tmpl @@ -19,7 +19,7 @@ end Dir.glob("{ext,gems}/*/exts.mk") do |e| gem = /\Agems(?=\/)/ =~ e s = File.read(e) - s.scan(/^(extensions|EXT[A-Z]+)[ \t]*=[ \t]*((?>(?>[^\\\n]|\\.)*\\\n)*(?>[^\\\n]|\\.)*)$/) do |n, v| + s.scan(/^(extensions|EXT[A-Z]+|MFLAGS)[ \t]*=[ \t]*((?>(?>[^\\\n]|\\.)*\\\n)*(?>[^\\\n]|\\.)*)$/) do |n, v| v.gsub!(/\\\n[ \t]*/, ' ') next if v.empty? next if gem and n != "extensions" @@ -85,8 +85,12 @@ else submake = "cd $(@D) && " exec = RbConfig::CONFIG["exec"] and !exec.empty? and submake << exec << " " submake << "$(MAKE)" + mflags = " $(MFLAGS)" end -%> +-%> +% unless macros["MFLAGS"].empty? +MFLAGS =<%= macros["MFLAGS"].fold(column) %> +% end extensions =<%= macros["extensions"].fold(column) %> EXTOBJS =<%= macros["EXTOBJS"].fold(column) %> @@ -111,17 +115,17 @@ distclean: % rubies.each do |ruby| <%= ruby %>: - $(Q)$(MAKE) $(SUBMAKEOPTS) $@ + $(Q)$(MAKE)<%=mflags%> $(SUBMAKEOPTS) $@ % end libencs: - $(Q)$(MAKE) -f enc.mk V=$(V) $@ + $(Q)$(MAKE)<%=mflags%> -f enc.mk V=$(V) $@ ext/extinit.<%=objext%>: - $(Q)$(MAKE) V=$(V) EXTINITS="$(EXTINITS)" $@ + $(Q)$(MAKE)<%=mflags%> V=$(V) EXTINITS="$(EXTINITS)" $@ % targets.product(macros["extensions"].map {|e|e.chomp("/.")}) do |t, e| <%=e%>/<%=t%>: - $(Q)<%= submake %> V=$(V) $(@F) + $(Q)<%= submake %><%=mflags%> V=$(V) $(@F) % end extso: -- cgit v1.2.3