File tree Expand file tree Collapse file tree 2 files changed +52
-0
lines changed
Expand file tree Collapse file tree 2 files changed +52
-0
lines changed Original file line number Diff line number Diff line change @@ -504,6 +504,26 @@ update-deps:
504504 $(GIT ) --git-dir=$(GIT_DIR ) merge --no-edit --ff-only $(update_deps )
505505 $(GIT ) --git-dir=$(GIT_DIR ) branch --delete $(update_deps )
506506
507+ # order-only-prerequisites doesn't work for $(RUBYSPEC_CAPIEXT)
508+ # because the same named directory exists in the source tree.
509+ $(RUBYSPEC_CAPIEXT ) /% .$(DLEXT ) : $(srcdir ) /$(RUBYSPEC_CAPIEXT ) /% .c $(srcdir ) /$(RUBYSPEC_CAPIEXT ) /rubyspec.h $(RUBY_H_INCLUDES ) $(LIBRUBY )
510+ $(ECHO ) building $@
511+ $(Q ) $(MAKEDIRS ) $(@D )
512+ $(Q ) $(DLDSHARED ) -L. $(XDLDFLAGS ) $(XLDFLAGS ) $(LDFLAGS ) $(INCFLAGS ) -I$(EXTOUT ) /include $(CPPFLAGS ) $(OUTFLAG ) $@ $< $(LIBRUBYARG )
513+ ifneq ($(POSTLINK ) ,)
514+ $(Q) $(POSTLINK)
515+ endif
516+ $(Q) $(RMALL) $@.*
517+
518+ RUBYSPEC_CAPIEXT_SO := $(patsubst % .c,$(RUBYSPEC_CAPIEXT ) /% .$(DLEXT ) ,$(notdir $(wildcard $(srcdir ) /$(RUBYSPEC_CAPIEXT ) /* .c) ) )
519+ rubyspec-capiext : $(RUBYSPEC_CAPIEXT_SO )
520+ @ $(NULLCMD )
521+
522+ ifeq ($(ENABLE_SHARED ) ,yes)
523+ ruby : $(if $(LIBRUBY_SO_UPDATE ) ,$(RUBYSPEC_CAPIEXT_SO ) )
524+ exts : rubyspec-capiext
525+ endif
526+
507527spec/% / spec/% _spec.rb : programs exts PHONY
508528 +$(RUNRUBY ) -r./$(arch ) -fake $(srcdir ) /spec/mspec/bin/mspec-run -B $(srcdir ) /spec/default.mspec $(SPECOPTS ) $(patsubst % ,$(srcdir ) /% ,$@ )
509529
Original file line number Diff line number Diff line change @@ -1468,6 +1468,38 @@ loadpath: verconf.h
14681468 sed -e ' 1,/^const char ruby_initial_load_paths/d;/;/,$$d' \
14691469 -e ' /^^ /!d;s/ *"\\\\0"$$//;s/" *"//g'
14701470
1471+ RUBYSPEC_CAPIEXT_SRCDIR = $(srcdir ) /$(RUBYSPEC_CAPIEXT )
1472+ RUBYSPEC_CAPIEXT_DEPS = $(RUBYSPEC_CAPIEXT_SRCDIR ) /rubyspec.h $(RUBY_H_INCLUDES ) $(LIBRUBY )
1473+ RUBYSPEC_CAPIEXT_EXTS =
1474+
1475+ !if [echo>rubyspec-capiext.mk RUBYSPEC_CAPIEXT_EXTS = \]
1476+ !else if [for %I in ($(RUBYSPEC_CAPIEXT_SRCDIR)\*_spec.c) do \
1477+ @echo. $$(RUBYSPEC_CAPIEXT)/%~nI.so \>>rubyspec-capiext.mk]
1478+ !else if [echo. $$(empty)>>rubyspec-capiext.mk]
1479+ !else
1480+ ! include rubyspec-capiext.mk
1481+ ! if [del rubyspec-capiext.mk > nul]
1482+ ! endif
1483+ !endif
1484+
1485+ $(RUBYSPEC_CAPIEXT_EXTS ) : $(RUBYSPEC_CAPIEXT_DEPS )
1486+ rubyspec-capiext : $(RUBYSPEC_CAPIEXT_EXTS )
1487+ @ $(NULLCMD )
1488+
1489+ {$(RUBYSPEC_CAPIEXT_SRCDIR ) }.c{$(RUBYSPEC_CAPIEXT ) }.so :
1490+ $(ECHO ) building $(@F )
1491+ $(Q )$(MAKEDIRS ) $(@D )
1492+ $(Q ) (echo EXPORTS&& echo Init_$( * F) )> $* .def
1493+ $(Q )$(LDSHARED ) -Fe$(@ ) -Fo$(* ) .obj $(INCFLAGS ) $(CFLAGS ) $(CPPFLAGS ) $< $(LIBRUBYARG ) -link $(DLDFLAGS ) $(XLDFLAGS ) $(LIBS ) $(LOCAL_LIBS ) -implib:$* .lib -pdb:$* .pdb -def:$* .def
1494+ !if defined(LDSHARED_0)
1495+ $(Q)$(LDSHARED_0)
1496+ $(Q)$(LDSHARED_1)
1497+ $(Q)$(LDSHARED_2)
1498+ !endif
1499+ $(Q)$(RM) $*.def $*.exp $*.lib $*.obj $*.pdb
1500+
1501+ exts : rubyspec-capiext
1502+
14711503yesterday :
14721504 for /f " usebackq" %H in \
14731505 (` $( GIT) -C $( srcdir) log -1 " --before=00:00+0900" " --format=%H" ` ) do \
You can’t perform that action at this time.
0 commit comments