@@ -62,8 +62,20 @@ top_builddir := $(dir $(PGXS))../..
6262include $(top_builddir ) /src/Makefile.global
6363
6464top_srcdir = $(top_builddir )
65+ # If USE_VPATH is set or Makefile is not in current directory we are building
66+ # the extension with VPATH so we set the variable here
67+ ifdef USE_VPATH
68+ srcdir = $(USE_VPATH )
69+ VPATH = $(USE_VPATH )
70+ else
71+ ifeq ($(CURDIR ) ,$(dir $(firstword $(MAKEFILE_LIST ) ) ) )
6572srcdir = .
6673VPATH =
74+ else
75+ srcdir = $(dir $(firstword $(MAKEFILE_LIST ) ) )
76+ VPATH = $(srcdir )
77+ endif
78+ endif
6779
6880# These might be set in Makefile.global, but if they were not found
6981# during the build of PostgreSQL, supply default values so that users
@@ -112,33 +124,40 @@ all: all-lib
112124endif # MODULE_big
113125
114126
115- install : all installdirs
116- ifneq (,$(EXTENSION ) )
117- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(addsuffix .control, $(EXTENSION))) '$(DESTDIR)$(datadir)/extension/'
118- endif # EXTENSION
119- ifneq (,$(DATA )$(DATA_built ) )
120- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DATA)) $(DATA_built) '$(DESTDIR)$(datadir)/$(datamoduledir)/'
121- endif # DATA
122- ifneq (,$(DATA_TSEARCH ) )
123- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DATA_TSEARCH)) '$(DESTDIR)$(datadir)/tsearch_data/'
124- endif # DATA_TSEARCH
127+ install : all installdirs installcontrol installdata installdatatsearch installdocs installscripts
125128ifdef MODULES
126129 $(INSTALL_SHLIB) $(addsuffix $(DLSUFFIX), $(MODULES)) '$(DESTDIR)$(pkglibdir)/'
127130endif # MODULES
131+ ifdef PROGRAM
132+ $(INSTALL_PROGRAM) $(PROGRAM)$(X) '$(DESTDIR)$(bindir)'
133+ endif # PROGRAM
134+
135+ installcontrol : $(addsuffix .control, $(EXTENSION ) ) | installdirs136+ ifneq (,$(EXTENSION ) )
137+ $(INSTALL_DATA) $^ '$(DESTDIR)$(datadir)/extension/'
138+ endif
139+
140+ installdata : $(DATA ) $(DATA_built ) | installdirs
141+ ifneq (,$(DATA )$(DATA_built ) )
142+ $(INSTALL_DATA) $^ '$(DESTDIR)$(datadir)/$(datamoduledir)/'
143+ endif
144+
145+ installdatatsearch : $(DATA_TSEARCH ) | installdirs
146+ ifneq (,$(DATA_TSEARCH ) )
147+ $(INSTALL_DATA) $^ '$(DESTDIR)$(datadir)/tsearch_data/'
148+ endif
149+
150+ installdocs : $(DOCS ) | installdirs
128151ifdef DOCS
129152ifdef docdir
130- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DOCS)) '$(DESTDIR)$(docdir)/$(docmoduledir)/'
153+ $(INSTALL_DATA) $^ '$(DESTDIR)$(docdir)/$(docmoduledir)/'
131154endif # docdir
132155endif # DOCS
133- ifdef PROGRAM
134- $(INSTALL_PROGRAM) $(PROGRAM)$(X) '$(DESTDIR)$(bindir)'
135- endif # PROGRAM
156+
157+ installscripts : $(SCRIPTS ) $(SCRIPTS_built ) | installdirs
136158ifdef SCRIPTS
137- $(INSTALL_SCRIPT) $(addprefix $(srcdir)/, $(SCRIPTS)) '$(DESTDIR)$(bindir)/'
159+ $(INSTALL_SCRIPT) $^ '$(DESTDIR)$(bindir)/'
138160endif # SCRIPTS
139- ifdef SCRIPTS_built
140- $(INSTALL_SCRIPT) $(SCRIPTS_built) '$(DESTDIR)$(bindir)/'
141- endif # SCRIPTS_built
142161
143162ifdef MODULE_big
144163install : install-lib
@@ -263,6 +282,7 @@ test_files_build := $(patsubst $(srcdir)/%, $(abs_builddir)/%, $(test_files_src)
263282
264283all : $(test_files_build )
265284$(test_files_build ) : $(abs_builddir ) /% : $(srcdir ) /%
285+ $(MKDIR_P ) $(dir $@ )
266286 ln -s $< $@
267287endif # VPATH
268288
0 commit comments