aboutsummaryrefslogtreecommitdiffstats
path: root/defs
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-27 18:19:26 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-29 18:12:43 +0900
commit8e3ac264df55ed7903f4f9519b353ca182eea81f (patch)
treea500d45fd35d8bc0480a333abab0e6c2a6eaab4f /defs
parentaacaa2ec5e13d7d678b58208bf3d6c0551f251cd (diff)
downloadruby-8e3ac264df55ed7903f4f9519b353ca182eea81f.tar.gz
Fix dependencies of outdate-bundled-gems
Extract new gems then remove outdated gem directories.
Diffstat (limited to 'defs')
-rw-r--r--defs/gmake.mk20
1 files changed, 14 insertions, 6 deletions
diff --git a/defs/gmake.mk b/defs/gmake.mk
index e854a0ac77..0d79aba07d 100644
--- a/defs/gmake.mk
+++ b/defs/gmake.mk
@@ -284,9 +284,18 @@ bundled-gems := $(shell sed \
bundled-gems-rev := $(filter-out $(subst |,,$(bundled-gems)),$(bundled-gems))
bundled-gems := $(filter-out $(bundled-gems-rev),$(bundled-gems))
+# calls $(1) with name, version, revision, URL
+foreach-bundled-gems-rev = \
+ $(foreach g,$(bundled-gems-rev),$(call foreach-bundled-gems-rev-0,$(1),$(subst |, ,$(value g))))
+foreach-bundled-gems-rev-0 = \
+ $(call $(1),$(word 1,$(2)),$(word 2,$(2)),$(word 3,$(2)),$(word 4,$(2)))
+bundled-gem-gemfile = $(srcdir)/gems/$(1)-$(2).gem
+bundled-gem-srcdir = $(srcdir)/gems/src/$(1)
+bundled-gem-extracted = $(srcdir)/.bundle/gems/$(1)-$(2)
+
update-gems: | $(patsubst %,$(srcdir)/gems/%.gem,$(bundled-gems))
-update-gems: | $(foreach g,$(bundled-gems-rev),$(srcdir)/gems/src/$(word 1,$(subst |, ,$(value g))))
-update-gems: | $(foreach g,$(bundled-gems-rev),$(srcdir)/gems/$(word 1,$(subst |, ,$(value g)))-$(word 2,$(subst |, ,$(value g))).gem)
+update-gems: | $(call foreach-bundled-gems-rev,bundled-gem-gemfile)
+update-gems: | $(call foreach-bundled-gems-rev,bundled-gem-srcdir)
test-bundler-precheck: | $(srcdir)/.bundle/cache
@@ -306,8 +315,7 @@ $(srcdir)/gems/%.gem:
-e 'FileUtils.rm_rf(old.map{'"|n|"'n.chomp(".gem")})'
extract-gems: | $(patsubst %,$(srcdir)/.bundle/gems/%,$(bundled-gems))
-extract-gems: | $(foreach g,$(bundled-gems-rev), \
- $(srcdir)/.bundle/gems/$(word 1,$(subst |, ,$(value g)))-$(word 2,$(subst |, ,$(value g))))
+extract-gems: | $(call foreach-bundled-gems-rev,bundled-gem-extracted)
$(srcdir)/.bundle/gems/%: $(srcdir)/gems/%.gem | .bundle/gems
$(ECHO) Extracting bundle gem $*...
@@ -332,10 +340,10 @@ $(srcdir)/.bundle/gems/$(1)-$(2): | $(srcdir)/gems/src/$(1) .bundle/gems
endef
define copy-gem-0
-$(call copy-gem,$(word 1,$(1)),$(word 2,$(1)),$(word 3,$(1)),$(word 4,$(1)))
+$(eval $(call copy-gem,$(1),$(2),$(3),$(4)))
endef
-$(foreach g,$(bundled-gems-rev),$(eval $(call copy-gem-0,$(subst |, ,$(value g)))))
+$(call foreach-bundled-gems-rev,copy-gem-0)
$(srcdir)/gems/src:
$(MAKEDIRS) $@