summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-12-10 11:18:38 +0900
committerNobuyoshi Nakada <nobu.nakada@gmail.com>2024-12-10 12:31:47 +0900
commitf12e2622c1d3a438cbae6afdadf824e228207ae6 (patch)
treeec571724cb5bf297c2aa117d662dd57754679b68
parentce2f3983868308fd330d4134e66e46b0a82c666b (diff)
Split system dependent commands to clean modular-gc
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/12300
-rw-r--r--common.mk10
-rw-r--r--template/Makefile.in6
-rw-r--r--win32/Makefile.sub5
3 files changed, 15 insertions, 6 deletions
diff --git a/common.mk b/common.mk
index ccbc25f401..40eec62f5f 100644
--- a/common.mk
+++ b/common.mk
@@ -1953,12 +1953,10 @@ modular-gc: probes.h modular-gc-precheck
$(CHDIR) gc/$(MODULAR_GC) && $(exec) $(MAKE) TARGET_SO_DIR=./
$(CP) gc/$(MODULAR_GC)/librubygc.$(MODULAR_GC).$(DLEXT) $(modular_gc_dir)
-clean-modular-gc:
- - find gc -type d -mindepth 1 -maxdepth 1 -exec sh -c '$(CHDIR) "{}" && $(MAKE) TARGET_SO_DIR=./ clean || $(NULLCMD)' \; || $(NULLCMD)
- -$(Q) $(RMDIR) gc
-distclean-modular-gc: clean-modular-gc
- - find gc -type d -mindepth 1 -maxdepth 1 -exec sh -c '$(CHDIR) "{}" && $(MAKE) TARGET_SO_DIR=./ distclean || $(NULLCMD)' \; || $(NULLCMD)
- - find gc -type d -mindepth 1 -maxdepth 1 -exec sh -c '$(RMDIR) "{}"' \; || $(NULLCMD)
+clean-modular-gc: gc/clean
+distclean-modular-gc: gc/distclean
+realclean-modular-gc: gc/realclean
+distclean-modular-gc realclean-modular-gc:
-$(Q) $(RMDIR) gc
help: PHONY
diff --git a/template/Makefile.in b/template/Makefile.in
index ca7c551830..39d5bdd156 100644
--- a/template/Makefile.in
+++ b/template/Makefile.in
@@ -567,6 +567,12 @@ ext/distclean ext/realclean .bundle/distclean .bundle/realclean::
.bundle/realclean::
@$(RMALL) $(tooldir)/bunlder/*.lock $(srcdir)/.bundle
+gc/clean gc/distclean gc/realclean::
+ - for gc in gc/*/; do ($(CHDIR) $$gc && exec $(MAKE) TARGET_SO_DIR=./ $(@F)); done || $(NULLCMD)
+
+gc/distclean gc/realclean::
+ - for gc in gc/*/; do $(RMDIR) $$gc; done || $(NULLCMD)
+
clean-enc distclean-enc realclean-enc:
@test -f "$(ENC_MK)" || exit 0; \
echo $(@:-enc=ing) encodings; \
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 46b50e9df0..86ecfc88fd 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -1295,6 +1295,11 @@ ext/distclean gems/distclean ext/realclean gems/realclean::
do $(Q)(del %I & rmdir %~dpI)) || @
-$(Q)rmdir $(@D) 2> nul || @
+gc/clean gc/distclean gc/realclean::
+ - for /D %G in (gc\*) do (pushd %G && $(MAKE) TARGET_SO_DIR=./ $(@F) & popd) || $(NULLCMD)
+gc/distclean gc/realclean::
+ - for /D %G in (gc\*) do ($(RMDIR) %G) || $(NULLCMD)
+
clean-enc distclean-enc realclean-enc:
!if exist($(ENC_MK))
$(ECHO) $(@:-enc=ing) encodings