postgresql/src/interfaces/ecpg/test/Makefile
Alvaro Herrera e41c7bb7cd VPATH fixes.
2007-06-12 15:00:41 +00:00

98 lines
3.5 KiB
Makefile

# $PostgreSQL: pgsql/src/interfaces/ecpg/test/Makefile,v 1.70 2007/06/12 15:00:41 alvherre Exp $
subdir = src/interfaces/ecpg/test
top_builddir = ../../../..
include $(top_builddir)/src/Makefile.global
# port number for temp-installation test postmaster
# this is also defined in test/connect/Makefile
TEMP_PORT = 5$(DEF_PGPORT)
# where to find psql for testing an existing installation
PSQLDIR = $(bindir)
# default encoding
MULTIBYTE = SQL_ASCII
# locale
NOLOCALE =
ifdef NO_LOCALE
NOLOCALE += --no-locale
endif
ifneq ($(PORTNAME),win32)
abs_builddir := $(shell pwd)
else
abs_builddir := $(shell pwd -W)
endif
# stuff to pass into build of pg_regress
EXTRADEFS = '-DHOST_TUPLE="$(host_tuple)"' \
'-DMAKEPROG="$(MAKE)"' \
'-DSHELLPROG="$(SHELL)"' \
'-DDLSUFFIX="$(DLSUFFIX)"'
REGRESSINCLUDES = "-I$(top_srcdir)/src/test/regress"
REGRESSDRIVER = "$(top_builddir)/src/test/regress/pg_regress.o"
all install installdirs uninstall distprep:
$(MAKE) -C connect $@
$(MAKE) -C expected $@
$(MAKE) -C sql $@
$(MAKE) -C pgtypeslib $@
$(MAKE) -C preproc $@
$(MAKE) -C compat_informix $@
$(MAKE) -C thread $@
clean distclean maintainer-clean:
$(MAKE) -C connect $@
$(MAKE) -C connect extraclean
$(MAKE) -C expected extraclean
$(MAKE) -C sql $@
$(MAKE) -C pgtypeslib $@
$(MAKE) -C preproc $@
$(MAKE) -C compat_informix $@
$(MAKE) -C thread $@
rm -rf tmp_check results log
rm -f pg_regress regression.diffs pg_regress_ecpg.o
# Build regression test driver
all: pg_regress$(X)
pg_regress$(X): pg_regress_ecpg.o
$(CC) $(CFLAGS) $^ $(REGRESSDRIVER) $(REGRESSINCLUDES) $(LDFLAGS) $(LIBS) -o $@
# dependencies ensure that path changes propagate
pg_regress_ecpg.o: pg_regress_ecpg.c $(top_builddir)/src/port/pg_config_paths.h
$(CC) $(CFLAGS) $(CPPFLAGS) -I$(top_builddir)/src/port $(REGRESSINCLUDES) $(EXTRADEFS) -c -o $@ $<
$(top_builddir)/src/port/pg_config_paths.h: $(top_builddir)/src/Makefile.global
$(MAKE) -C $(top_builddir)/src/port pg_config_paths.h
# When doing a VPATH build, copy over the .pgc, .stdout and .stderr
# files so that the driver script can find them. We have to use an
# absolute path for the targets, because otherwise make will try to
# locate the missing files using VPATH, and will find them in
# $(srcdir), but the point here is that we want to copy them from
# $(srcdir) to the build directory.
ifdef VPATH
remaining_files_src := $(wildcard $(srcdir)/*/*.pgc) $(wildcard $(srcdir)/expected/*.c) $(wildcard $(srcdir)/expected/*.stdout) $(wildcard $(srcdir)/expected/*.stderr)
remaining_files_build := $(patsubst $(srcdir)/%, $(abs_builddir)/%, $(remaining_files_src))
all: $(remaining_files_build)
$(remaining_files_build): $(abs_builddir)/%: $(srcdir)/%
ln -s $< $@
endif
check: all
./pg_regress --dbname=regress1,connectdb --top-builddir=$(top_builddir) --temp-install=./tmp_check --temp-port=$(TEMP_PORT) --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) $(THREAD) --schedule=$(srcdir)/ecpg_schedule --create-role=connectuser,connectdb
# the same options, but with --listen-on-tcp
checktcp: all
./pg_regress --dbname=regress1,connectdb --top-builddir=$(top_builddir) --temp-install=./tmp_check --temp-port=$(TEMP_PORT) --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) $(THREAD) --schedule=$(srcdir)/ecpg_schedule --create-role=connectuser,connectdb --host=localhost
installcheck: all
./pg_regress --psqldir=$(PSQLDIR) --dbname=regress1,connectdb --top-builddir=$(top_builddir) --multibyte=$(MULTIBYTE) --load-language=plpgsql $(NOLOCALE) $(THREAD) --schedule=$(srcdir)/ecpg_schedule --create-role=connectuser,connectdb