summaryrefslogtreecommitdiff
path: root/defs/gmake.mk
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-12-04 10:40:15 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-12-04 10:40:15 +0900
commita4964174e26303524cee8c2d8523048b87137993 (patch)
treeeccc69b06263948f72057c38db9f502656ff51f3 /defs/gmake.mk
parentd118e7c025adf0221fe16ad3a0d57ba9605fd2a7 (diff)
Fix circular dependencies specific to in-place build [Bug #18374]
* Move the rubyspec running recipe after the rule for rubyspec C-API extension library, so that separate dummy recipe is not needed. * Add a dummy recipe for rubyspec.h before the rubyspec running recipe, so that the dependency of extensions do not fire the latter.
Diffstat (limited to 'defs/gmake.mk')
-rw-r--r--defs/gmake.mk10
1 files changed, 6 insertions, 4 deletions
diff --git a/defs/gmake.mk b/defs/gmake.mk
index 1a6c8620ed..0b17bfb16f 100644
--- a/defs/gmake.mk
+++ b/defs/gmake.mk
@@ -367,11 +367,10 @@ spec/bundler: test-bundler-parallel
$(Q)$(NULLCMD)
# workaround to avoid matching non ruby files with "spec/%/" under GNU make 3.81
-spec/%_spec.c spec/%_spec.$(DLEXT):
+spec/%_spec.c:
+ $(empty)
+$(srcdir)/$(RUBYSPEC_CAPIEXT)/rubyspec.h:
$(empty)
-
-spec/%/ spec/%_spec.rb: programs exts PHONY
- +$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec-run -B $(srcdir)/spec/default.mspec $(SPECOPTS) $(patsubst %,$(srcdir)/%,$@)
benchmark/%: miniruby$(EXEEXT) update-benchmark-driver PHONY
$(Q)$(BASERUBY) -rrubygems -I$(srcdir)/benchmark/lib $(srcdir)/benchmark/benchmark-driver/exe/benchmark-driver \
@@ -422,3 +421,6 @@ rubyspec-capiext: $(patsubst %.c,$(RUBYSPEC_CAPIEXT)/%.$(DLEXT),$(notdir $(wildc
ifeq ($(ENABLE_SHARED),yes)
exts: rubyspec-capiext
endif
+
+spec/%/ spec/%_spec.rb: programs exts PHONY
+ +$(RUNRUBY) -r./$(arch)-fake $(srcdir)/spec/mspec/bin/mspec-run -B $(srcdir)/spec/default.mspec $(SPECOPTS) $(patsubst %,$(srcdir)/%,$@)