diff --git a/common.mk b/common.mk index 3f508959a7..0242699118 100644 --- a/common.mk +++ b/common.mk @@ -47,7 +47,7 @@ RUN_OPTS = --disable-gems # GITPULLOPTIONS = --no-tags PRISM_SRCDIR = $(srcdir)/prism -INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir) -I$(srcdir) -I$(PRISM_SRCDIR) -I$(UNICODE_HDR_DIR) $(incflags) +INCFLAGS = -I. -I$(arch_hdrdir) -I$(ext_hdrdir) -I$(hdrdir) -I$(srcdir) -I$(PRISM_SRCDIR) -I$(UNICODE_HDR_DIR) $(incflags) GEM_HOME = GEM_PATH = @@ -860,6 +860,9 @@ clean-platform distclean-platform realclean-platform: -$(Q) $(RMDIR) $(PLATFORM_DIR) 2> $(NULL) || $(NULLCMD) 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 + clean-spec: PHONY -$(Q) $(RM) $(RUBYSPEC_CAPIEXT)/*.$(OBJEXT) $(RUBYSPEC_CAPIEXT)/*.$(DLEXT) -$(Q) $(RMDIRS) $(RUBYSPEC_CAPIEXT) 2> $(NULL) || $(NULLCMD) diff --git a/defs/gmake.mk b/defs/gmake.mk index c7891674a0..666e057c9d 100644 --- a/defs/gmake.mk +++ b/defs/gmake.mk @@ -506,10 +506,10 @@ 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 $(srcdir)/$(RUBYSPEC_CAPIEXT)/rubyspec.h $(RUBY_H_INCLUDES) $(LIBRUBY) +$(RUBYSPEC_CAPIEXT)/%.$(DLEXT): $(srcdir)/$(RUBYSPEC_CAPIEXT)/%.c $(RUBYSPEC_CAPIEXT_DEPS) $(ECHO) building $@ $(Q) $(MAKEDIRS) $(@D) - $(Q) $(DLDSHARED) -L. $(XDLDFLAGS) $(XLDFLAGS) $(LDFLAGS) $(INCFLAGS) -I$(EXTOUT)/include $(CPPFLAGS) $(OUTFLAG)$@ $< $(LIBRUBYARG) + $(Q) $(DLDSHARED) -L. $(XDLDFLAGS) $(XLDFLAGS) $(LDFLAGS) $(INCFLAGS) $(CPPFLAGS) $(OUTFLAG)$@ $< $(LIBRUBYARG) ifneq ($(POSTLINK),) $(Q) $(POSTLINK) endif @@ -520,7 +520,6 @@ rubyspec-capiext: $(RUBYSPEC_CAPIEXT_SO) @ $(NULLCMD) ifeq ($(ENABLE_SHARED),yes) -ruby: $(if $(LIBRUBY_SO_UPDATE),$(RUBYSPEC_CAPIEXT_SO)) exts: rubyspec-capiext endif diff --git a/template/Makefile.in b/template/Makefile.in index 743971abcb..aed81bf1ef 100644 --- a/template/Makefile.in +++ b/template/Makefile.in @@ -77,7 +77,8 @@ DOCTARGETS = @RDOCTARGET@ @CAPITARGET@ EXTOUT = @EXTOUT@ TIMESTAMPDIR = $(EXTOUT)/.timestamp -arch_hdrdir = $(EXTOUT)/include/$(arch) +ext_hdrdir = $(EXTOUT)/include +arch_hdrdir = $(ext_hdrdir)/$(arch) VPATH = $(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir):$(srcdir)/missing empty = diff --git a/win32/Makefile.sub b/win32/Makefile.sub index 3acdb1a2bd..80225c3063 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -493,7 +493,8 @@ ENCOBJS = dmyenc.$(OBJEXT) EXTOBJS = dmyext.$(OBJEXT) !endif -arch_hdrdir = $(EXTOUT)/include/$(arch) +ext_hdrdir = $(EXTOUT)/include +arch_hdrdir = $(ext_hdrdir)/$(arch) top_srcdir = $(srcdir) hdrdir = $(srcdir)/include VPATH = $(arch_hdrdir)/ruby;$(hdrdir)/ruby;$(srcdir);$(srcdir)/missing;$(win_srcdir) @@ -1468,8 +1469,6 @@ loadpath: verconf.h sed -e '1,/^const char ruby_initial_load_paths/d;/;/,$$d' \ -e '/^^ /!d;s/ *"\\\\0"$$//;s/" *"//g' -RUBYSPEC_CAPIEXT_SRCDIR = $(srcdir)/$(RUBYSPEC_CAPIEXT) -RUBYSPEC_CAPIEXT_DEPS = $(RUBYSPEC_CAPIEXT_SRCDIR)/rubyspec.h $(RUBY_H_INCLUDES) $(LIBRUBY) RUBYSPEC_CAPIEXT_EXTS = !if [echo>rubyspec-capiext.mk RUBYSPEC_CAPIEXT_EXTS = \]