@@ -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
6779endif
6880
6981
@@ -102,33 +114,40 @@ all: all-lib
102114endif # MODULE_big
103115
104116
105- install : all installdirs
106- ifneq (,$(EXTENSION ) )
107- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(addsuffix .control, $(EXTENSION))) '$(DESTDIR)$(datadir)/extension/'
108- endif # EXTENSION
109- ifneq (,$(DATA )$(DATA_built ) )
110- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DATA)) $(DATA_built) '$(DESTDIR)$(datadir)/$(datamoduledir)/'
111- endif # DATA
112- ifneq (,$(DATA_TSEARCH ) )
113- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DATA_TSEARCH)) '$(DESTDIR)$(datadir)/tsearch_data/'
114- endif # DATA_TSEARCH
117+ install : all installdirs installcontrol installdata installdatatsearch installdocs installscripts
115118ifdef MODULES
116119$(INSTALL_SHLIB) $(addsuffix $(DLSUFFIX), $(MODULES)) '$(DESTDIR)$(pkglibdir)/'
117120endif # MODULES
121+ ifdef PROGRAM
122+ $(INSTALL_PROGRAM) $(PROGRAM)$(X) '$(DESTDIR)$(bindir)'
123+ endif # PROGRAM
124+
125+ installcontrol :$(addsuffix .control,$(EXTENSION ) ) | installdirs
126+ ifneq (,$(EXTENSION ) )
127+ $(INSTALL_DATA) $^ '$(DESTDIR)$(datadir)/extension/'
128+ endif
129+
130+ installdata :$(DATA ) $(DATA_built ) | installdirs
131+ ifneq (,$(DATA )$(DATA_built ) )
132+ $(INSTALL_DATA) $^ '$(DESTDIR)$(datadir)/$(datamoduledir)/'
133+ endif
134+
135+ installdatatsearch :$(DATA_TSEARCH ) | installdirs
136+ ifneq (,$(DATA_TSEARCH ) )
137+ $(INSTALL_DATA) $^ '$(DESTDIR)$(datadir)/tsearch_data/'
138+ endif
139+
140+ installdocs :$(DOCS ) | installdirs
118141ifdef DOCS
119142ifdef docdir
120- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DOCS)) '$(DESTDIR)$(docdir)/$(docmoduledir)/'
143+ $(INSTALL_DATA) $^ '$(DESTDIR)$(docdir)/$(docmoduledir)/'
121144endif # docdir
122145endif # DOCS
123- ifdef PROGRAM
124- $(INSTALL_PROGRAM) $(PROGRAM)$(X) '$(DESTDIR)$(bindir)'
125- endif # PROGRAM
146+
147+ installscripts :$(SCRIPTS ) $(SCRIPTS_built ) | installdirs
126148ifdef SCRIPTS
127- $(INSTALL_SCRIPT) $(addprefix $(srcdir)/, $(SCRIPTS)) '$(DESTDIR)$(bindir)/'
149+ $(INSTALL_SCRIPT) $^ '$(DESTDIR)$(bindir)/'
128150endif # SCRIPTS
129- ifdef SCRIPTS_built
130- $(INSTALL_SCRIPT) $(SCRIPTS_built) '$(DESTDIR)$(bindir)/'
131- endif # SCRIPTS_built
132151
133152ifdef MODULE_big
134153install : install-lib
@@ -253,6 +272,7 @@ test_files_build := $(patsubst $(srcdir)/%, $(abs_builddir)/%, $(test_files_src)
253272
254273all :$(test_files_build )
255274$(test_files_build ) :$(abs_builddir ) /% :$(srcdir ) /%
275+ $(MKDIR_P ) $(dir $@ )
256276ln -s$< $@
257277endif # VPATH
258278