From ed2806117a0b76e4439ce1a061fae21d9e116d69 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Mon, 12 May 2025 13:50:33 +0900 Subject: [PATCH] Do not let files depend on a phony target --- common.mk | 5 ++++- defs/gmake.mk | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common.mk b/common.mk index 0242699118..7bf6d28b53 100644 --- a/common.mk +++ b/common.mk @@ -861,7 +861,10 @@ 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) build-ext +RUBYSPEC_CAPIEXT_DEPS = $(RUBYSPEC_CAPIEXT_SRCDIR)/rubyspec.h $(RUBY_H_INCLUDES) $(LIBRUBY) + +rubyspec-capiext: build-ext $(DOT_WAIT) +# make-dependent rules should be included after this and built after build-ext. clean-spec: PHONY -$(Q) $(RM) $(RUBYSPEC_CAPIEXT)/*.$(OBJEXT) $(RUBYSPEC_CAPIEXT)/*.$(DLEXT) diff --git a/defs/gmake.mk b/defs/gmake.mk index 666e057c9d..6e696c4631 100644 --- a/defs/gmake.mk +++ b/defs/gmake.mk @@ -506,7 +506,8 @@ update-deps: # order-only-prerequisites doesn't work for $(RUBYSPEC_CAPIEXT) # because the same named directory exists in the source tree. -$(RUBYSPEC_CAPIEXT)/%.$(DLEXT): $(srcdir)/$(RUBYSPEC_CAPIEXT)/%.c $(RUBYSPEC_CAPIEXT_DEPS) +$(RUBYSPEC_CAPIEXT)/%.$(DLEXT): $(srcdir)/$(RUBYSPEC_CAPIEXT)/%.c $(RUBYSPEC_CAPIEXT_DEPS) \ + | build-ext $(ECHO) building $@ $(Q) $(MAKEDIRS) $(@D) $(Q) $(DLDSHARED) -L. $(XDLDFLAGS) $(XLDFLAGS) $(LDFLAGS) $(INCFLAGS) $(CPPFLAGS) $(OUTFLAG)$@ $< $(LIBRUBYARG)