From e6520de3442659def3463d3bfdca3432f41b2d6a Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 17 Dec 2025 17:28:47 -0500 Subject: [PATCH] [Bug #21792] Build rubyspec-capiext only when excuting `test-spec` rubyspec-capiext is only needed for running specs, not for building or installing Ruby. --- common.mk | 3 ++- defs/gmake.mk | 6 +----- win32/Makefile.sub | 2 -- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/common.mk b/common.mk index c0d663f68e..08fee9119a 100644 --- a/common.mk +++ b/common.mk @@ -804,6 +804,7 @@ clean-platform distclean-platform realclean-platform: RUBYSPEC_CAPIEXT = spec/ruby/optional/capi/ext RUBYSPEC_CAPIEXT_SRCDIR = $(srcdir)/$(RUBYSPEC_CAPIEXT) RUBYSPEC_CAPIEXT_DEPS = $(RUBYSPEC_CAPIEXT_SRCDIR)/rubyspec.h $(RUBY_H_INCLUDES) $(LIBRUBY) +RUBYSPEC_CAPIEXT_BUILD = $(enable_shared:yes=rubyspec-capiext) rubyspec-capiext: build-ext $(DOT_WAIT) # make-dependent rules should be included after this and built after build-ext. @@ -905,7 +906,7 @@ test: test-short # Separate to skip updating encs and exts by `make -o test-precheck` # for GNU make. -test-precheck: $(ENCSTATIC:static=lib)encs exts PHONY $(DOT_WAIT) +test-precheck: $(ENCSTATIC:static=lib)encs $(RUBYSPEC_CAPIEXT_BUILD) exts PHONY $(DOT_WAIT) yes-test-all-precheck: programs $(DOT_WAIT) test-precheck PRECHECK_TEST_ALL = yes-test-all-precheck diff --git a/defs/gmake.mk b/defs/gmake.mk index 2422151009..e6f553fa8c 100644 --- a/defs/gmake.mk +++ b/defs/gmake.mk @@ -529,11 +529,7 @@ RUBYSPEC_CAPIEXT_SO := $(patsubst %.c,$(RUBYSPEC_CAPIEXT)/%.$(DLEXT),$(notdir $( rubyspec-capiext: $(RUBYSPEC_CAPIEXT_SO) @ $(NULLCMD) -ifeq ($(ENABLE_SHARED),yes) -exts: rubyspec-capiext -endif - -spec/%/ spec/%_spec.rb: programs exts PHONY +spec/%/ spec/%_spec.rb: programs exts $(RUBYSPEC_CAPIEXT_BUILD) PHONY +$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec-run -B $(srcdir)/spec/default.mspec $(SPECOPTS) $(patsubst %,$(srcdir)/%,$@) ruby.pc: $(filter-out ruby.pc,$(ruby_pc)) diff --git a/win32/Makefile.sub b/win32/Makefile.sub index c3db450abc..80f8f5c2bf 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -1425,8 +1425,6 @@ rubyspec-capiext: $(RUBYSPEC_CAPIEXT_EXTS) $(Q)$(LDSHARED) -Fe$(@) -Fo$(*).obj $(INCFLAGS) $(CFLAGS) $(CPPFLAGS) $< $(LIBRUBYARG) -link $(DLDFLAGS) $(XLDFLAGS) $(LIBS) $(LOCAL_LIBS) -implib:$*.lib -pdb:$*.pdb -def:$*.def $(Q)$(RM) $*.def $*.exp $*.lib $*.obj $*.pdb -exts: rubyspec-capiext - yesterday: (set TZ=UTC-9) && \ for /f "usebackq" %H in \