aboutsummaryrefslogtreecommitdiffstats
path: root/template
diff options
context:
space:
mode:
authormrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-12-01 09:29:14 +0000
committermrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-12-01 09:29:14 +0000
commit5cae104e51be9cbf524b7d953b33d0909c46d006 (patch)
tree9446c66de917d4eb375dfc80e970f14fa5d8f660 /template
parentd1f8694171eed1544a8cc7c29ede155679efa0ca (diff)
downloadruby-5cae104e51be9cbf524b7d953b33d0909c46d006.tar.gz
Let sub-directory exts depend on their parent ext
* ext/extmk.rb: Let sub-directory exts depend on their parent ext. * template/exts.mk.tmpl: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'template')
-rw-r--r--template/exts.mk.tmpl21
1 files changed, 16 insertions, 5 deletions
diff --git a/template/exts.mk.tmpl b/template/exts.mk.tmpl
index e35c28294e..ea1219805b 100644
--- a/template/exts.mk.tmpl
+++ b/template/exts.mk.tmpl
@@ -128,14 +128,25 @@ libencs:
ext/extinit.<%=objext%>:
$(Q)$(MAKE)<%=mflags%> V=$(V) EXTINITS="$(EXTINITS)" $@
-% targets.product(macros["extensions"].map {|e|e.chomp("/.")}) do |t, e|
-<%=e%>/<%=t%>:
-% if /^(dist|real)clean$/ =~ t
+% exts = macros["extensions"].map {|e|e.chomp("/.")}.sort
+% targets.each do |tgt|
+% exts.each do |d|
+% t = "#{d}/#{tgt}"
+% if /^(dist|real)?clean$/ =~ tgt
+% deps = exts.select {|e|e.start_with?("#{d}/")}.map {|e|"#{e}/#{tgt}"}
+% pd = ' ' + deps.join(' ') unless deps.empty?
+% else
+% pext = File.dirname(d)
+% pd = " #{pext}/#{tgt}" if exts.include?(pext)
+% end
+<%=t%>:<%=pd%>
+% if /^(dist|real)clean$/ =~ tgt
$(ECHO) $(@F)ing $(@D)
-% end
+% end
$(Q)<%= submake %><%=mflags%> V=$(V) $(@F)
-% if /^(dist|real)clean$/ =~ t
+% if /^(dist|real)clean$/ =~ tgt
$(Q)$(RMDIRS) $(@D)
+% end
% end
% end