Skip to content

Commit 7620d36

Browse files
committed
Fix VPATH support (needed by Debian builds)
1 parent 4bc7b66 commit 7620d36

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

Makefile

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ EXTRA_CLEAN += pglogical.control
2727

2828
# The # in #define is taken as a comment, per https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=142043
2929
# so it must be escaped. The $ placeholders in awk must be doubled too.
30-
pglogical_version=$(shell awk '/\#define PGLOGICAL_VERSION[ \t]+\".*\"/ { print substr($$3,2,length($$3)-2) }' pglogical.h )
30+
pglogical_version=$(shell awk '/\#define PGLOGICAL_VERSION[ \t]+\".*\"/ { print substr($$3,2,length($$3)-2) }' $(realpath $(srcdir)/pglogical.h) )
3131

3232
ifdef USE_PGXS
3333

@@ -45,13 +45,14 @@ PG_CONFIG = pg_config
4545
PGVER := $(shell $(PG_CONFIG) --version | sed 's/[^0-9\.]//g' | awk -F . '{ print $$1$$2 }')
4646

4747
ifeq ($(PGVER),94)
48-
PG_CPPFLAGS += -Icompat
49-
OBJS += compat/pglogical_compat.o
48+
PG_CPPFLAGS += $(addprefix -I,$(realpath $(srcdir)/compat))
49+
OBJS += $(realpath $(srcdir)/compat/pglogical_compat.o)
5050
DATA += compat/pglogical_origin.control compat/pglogical_origin--1.0.0.sql
5151
REGRESS += --dbname=regression
5252
SCRIPTS_built += pglogical_dump/pglogical_dump
5353
SCRIPTS += pglogical_dump/pglogical_dump
54-
EXTRA_CLEAN += pglogical_dump/pg_dump.o pglogical_dump/common.o pglogical_dump/pg_dump_sort.o \
54+
EXTRA_CLEAN += \
55+
pglogical_dump/pg_dump.o pglogical_dump/common.o pglogical_dump/pg_dump_sort.o \
5556
pglogical_dump/pg_backup_archiver.o pglogical_dump/pg_backup_db.o pglogical_dump/pg_backup_custom.o \
5657
pglogical_dump/pg_backup_null.o pglogical_dump/pg_backup_tar.o pglogical_dump/pg_backup_directory.o \
5758
pglogical_dump/pg_backup_utils.o pglogical_dump/parallel.o pglogical_dump/compress_io.o pglogical_dump/dumputils.o \
@@ -64,6 +65,19 @@ include $(PGXS)
6465
pglogical_create_subscriber: pglogical_create_subscriber.o pglogical_fe.o
6566
$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(libpq_pgport) $(LIBS) -o $@$(X)
6667

68+
ifeq ($(PGVER),94)
69+
regresscheck: ;
70+
71+
$(srcdir)/pglogical_dump/pg_dump.c:
72+
$(warning pglogical_dump empty, trying to fetch as submodule)
73+
git submodule init
74+
git submodule update
75+
76+
pglogical_dump/pglogical_dump: pglogical_dump/pg_dump.c
77+
mkdir -p pglogical_dump
78+
$(MAKE) -C pglogical_dump -f ../$(srcdir)/pglogical_dump/Makefile VPATH=../$(VPATH)/pglogical_dump all
79+
80+
else
6781
# We can't do a normal 'make check' because PGXS doesn't support
6882
# creating a temp install. We don't want to use a normal PGXS
6983
# 'installcheck' though, because it's a pain to set up a temp install
@@ -75,14 +89,6 @@ pglogical_create_subscriber: pglogical_create_subscriber.o pglogical_fe.o
7589
# install. Nobody with any sense runs 'make check' under a user with
7690
# write permissions to their production PostgreSQL install (right?)
7791
# but this is still not ideal.
78-
79-
ifeq ($(PGVER),94)
80-
regresscheck: ;
81-
82-
pglogical_dump/pglogical_dump:
83-
$(MAKE) -C pglogical_dump
84-
85-
else
8692
regresscheck:
8793
$(MKDIR_P) regression_output
8894
$(pg_regress_check) \
@@ -114,7 +120,7 @@ EXTRA_REGRESS_OPTS += $(top_srcdir)/contrib/regress-postgresql.conf
114120
endif
115121

116122
pglogical.control: pglogical.control.in pglogical.h
117-
sed 's/__PGLOGICAL_VERSION__/$(pglogical_version)/' pglogical.control.in > pglogical.control
123+
sed 's/__PGLOGICAL_VERSION__/$(pglogical_version)/' $(realpath $(srcdir)/pglogical.control.in) > pglogical.control
118124

119125
all: pglogical.control
120126

0 commit comments

Comments
 (0)