aboutsummaryrefslogtreecommitdiffstats
path: root/template
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-01-26 08:19:34 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-01-26 08:19:34 +0000
commit43545252f730a16a3c716600b3f5bfada4f690de (patch)
tree3fcbbfbfc33ff86c2ad79a16f9b7ee7bf5887af7 /template
parent5880b0fbbd2abc93435ee95846a6070e03f7a269 (diff)
downloadruby-43545252f730a16a3c716600b3f5bfada4f690de.tar.gz
Parallel gem configuration
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'template')
-rw-r--r--template/configure-ext.mk.tmpl29
1 files changed, 19 insertions, 10 deletions
diff --git a/template/configure-ext.mk.tmpl b/template/configure-ext.mk.tmpl
index cf3f3b4e61..df51404069 100644
--- a/template/configure-ext.mk.tmpl
+++ b/template/configure-ext.mk.tmpl
@@ -13,20 +13,29 @@ opt = OptionParser.new do |o|
o.order!(ARGV)
end
srcdir ||= File.dirname(File.dirname(__FILE__))
-exts = Dir.glob("#{srcdir}/ext/*/").map(&File.method(:basename))
+exts = {}
+[["ext", "exts"], ["gems", "gems"]].each do |t, dir|
+ exts[t] = Dir.glob("#{srcdir}/#{dir}/*/").map {|n| n[(srcdir.size+1)..-1]}
+end
%>
MINIRUBY = <%=miniruby%>
SCRIPT_ARGS = <%=script_args%>
+EXTMK_ARGS = $(SCRIPT_ARGS) --extstatic $(EXTSTATIC) \
+ --gnumake=$(gnumake) --extflags="$(EXTLDFLAGS)" \
+
+all: exts gems
+exts:
+gems:
-all:
-% exts.each do |dir|
-all: ext/<%=dir%>/exts.mk
-ext/<%=dir%>/exts.mk: FORCE
- $(Q)$(MINIRUBY) $(srcdir)/ext/extmk.rb --make='$(MAKE)' --command-output=ext/<%=dir%>/exts.mk \
- $(SCRIPT_ARGS) --extension=<%=dir%> --extstatic $(EXTSTATIC) \
- --gnumake=$(gnumake) --extflags="$(EXTLDFLAGS)" \
- -- subconfigure
+% exts.each do |t, dirs|
+% dirs.each do |dir|
+<%=t%>: <%=dir%>/exts.mk
+<%=dir%>/exts.mk: FORCE
+ $(Q)$(MINIRUBY) $(srcdir)/ext/extmk.rb --make='$(MAKE)' \
+ --command-output=$@ $(EXTMK_ARGS) \
+ -- subconfigure $(@D)
+% end
% end
-.PHONY: FORCE
+.PHONY: FORCE all exts gems
FORCE: