@@ -62,8 +62,20 @@ top_builddir := $(dir $(PGXS))../..
62
62
include $(top_builddir ) /src/Makefile.global
63
63
64
64
top_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 ) ) ) )
65
72
srcdir = .
66
73
VPATH =
74
+ else
75
+ srcdir =$(dir $(firstword $(MAKEFILE_LIST ) ) )
76
+ VPATH =$(srcdir )
77
+ endif
78
+ endif
67
79
endif
68
80
69
81
@@ -102,33 +114,40 @@ all: all-lib
102
114
endif # MODULE_big
103
115
104
116
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
115
118
ifdef MODULES
116
119
$(INSTALL_SHLIB) $(addsuffix $(DLSUFFIX), $(MODULES)) '$(DESTDIR)$(pkglibdir)/'
117
120
endif # 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
118
141
ifdef DOCS
119
142
ifdef docdir
120
- $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DOCS)) '$(DESTDIR)$(docdir)/$(docmoduledir)/'
143
+ $(INSTALL_DATA) $^ '$(DESTDIR)$(docdir)/$(docmoduledir)/'
121
144
endif # docdir
122
145
endif # DOCS
123
- ifdef PROGRAM
124
- $(INSTALL_PROGRAM) $(PROGRAM)$(X) '$(DESTDIR)$(bindir)'
125
- endif # PROGRAM
146
+
147
+ installscripts :$(SCRIPTS ) $(SCRIPTS_built ) | installdirs
126
148
ifdef SCRIPTS
127
- $(INSTALL_SCRIPT) $(addprefix $(srcdir)/, $(SCRIPTS)) '$(DESTDIR)$(bindir)/'
149
+ $(INSTALL_SCRIPT) $^ '$(DESTDIR)$(bindir)/'
128
150
endif # SCRIPTS
129
- ifdef SCRIPTS_built
130
- $(INSTALL_SCRIPT) $(SCRIPTS_built) '$(DESTDIR)$(bindir)/'
131
- endif # SCRIPTS_built
132
151
133
152
ifdef MODULE_big
134
153
install : install-lib
@@ -253,6 +272,7 @@ test_files_build := $(patsubst $(srcdir)/%, $(abs_builddir)/%, $(test_files_src)
253
272
254
273
all :$(test_files_build )
255
274
$(test_files_build ) :$(abs_builddir ) /% :$(srcdir ) /%
275
+ $(MKDIR_P ) $(dir $@ )
256
276
ln -s$< $@
257
277
endif # VPATH
258
278