aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2015-07-30 20:48:41 -0400
committerNoah Misch <noah@leadboat.com>2015-07-30 20:48:41 -0400
commit5da944fb4683762b8ccebbf7599f79db01e63132 (patch)
treef1de58ec49a35e80c0193b65a5a17746cb762750
parente8e86fbc8b3619da54c485cf05272ccf1dac1a7d (diff)
downloadpostgresql-5da944fb4683762b8ccebbf7599f79db01e63132.tar.gz
postgresql-5da944fb4683762b8ccebbf7599f79db01e63132.zip
Consolidate makefile code for setting top_srcdir, srcdir and VPATH.
Responsibility was formerly split between Makefile.global and pgxs.mk. As a result of commit b58233c71b93a32fcab7219585cafc25a27eb769, in the PGXS case, these variables were unset while parsing Makefile.global and callees. Inclusion of Makefile.custom did not work from PGXS, and the subtle difference seemed like a recipe for future bugs. Back-patch to 9.4, where that commit first appeared.
-rw-r--r--src/Makefile.global.in21
-rw-r--r--src/makefiles/pgxs.mk15
2 files changed, 18 insertions, 18 deletions
diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 577299576a6..39a7879bb69 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -40,9 +40,24 @@ VERSION = @PACKAGE_VERSION@
MAJORVERSION = @PG_MAJORVERSION@
VERSION_NUM = @PG_VERSION_NUM@
-# Support for VPATH builds
-# (PGXS VPATH support is handled separately in pgxs.mk)
-ifndef PGXS
+# Set top_srcdir, srcdir, and VPATH.
+ifdef PGXS
+top_srcdir = $(top_builddir)
+
+# If VPATH is set or Makefile is not in current directory we are building
+# the extension with VPATH so we set the variable here.
+ifdef VPATH
+srcdir = $(VPATH)
+else
+ifeq ($(CURDIR),$(dir $(firstword $(MAKEFILE_LIST))))
+srcdir = .
+VPATH =
+else
+srcdir = $(dir $(firstword $(MAKEFILE_LIST)))
+VPATH = $(srcdir)
+endif
+endif
+else # not PGXS
vpath_build = @vpath_build@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
diff --git a/src/makefiles/pgxs.mk b/src/makefiles/pgxs.mk
index b5113726841..b6874ced91c 100644
--- a/src/makefiles/pgxs.mk
+++ b/src/makefiles/pgxs.mk
@@ -62,21 +62,6 @@ ifdef PGXS
top_builddir := $(dir $(PGXS))../..
include $(top_builddir)/src/Makefile.global
-top_srcdir = $(top_builddir)
-# If VPATH is set or Makefile is not in current directory we are building
-# the extension with VPATH so we set the variable here.
-ifdef VPATH
-srcdir = $(VPATH)
-else
-ifeq ($(CURDIR),$(dir $(firstword $(MAKEFILE_LIST))))
-srcdir = .
-VPATH =
-else
-srcdir = $(dir $(firstword $(MAKEFILE_LIST)))
-VPATH = $(srcdir)
-endif
-endif
-
# These might be set in Makefile.global, but if they were not found
# during the build of PostgreSQL, supply default values so that users
# of pgxs can use the variables.