PGXS on VPATH?
Hi,
Is PGXS on VPATH builds supported? I was just testing tsearch2 and it
isn't working. Note that I'm first standing on the builddir and it
doesn't work; then I'm back at the srcdir and it does work.
07:02 jovan tsearch2 2$ pwd
/pgsql/build/00orig/contrib/tsearch2
07:02 jovan tsearch2 0$ LANG=C make USE_PGXS=1
make: *** No rule to make target `tsearch.sql.in', needed by `tsearch2.sql'. Stop.
07:02 jovan tsearch2 2$ cdsrc
07:02 jovan tsearch2 0$ pwd
/pgsql/source/00orig/contrib/tsearch2
07:02 jovan tsearch2 0$ LANG=C make USE_PGXS=1
sed -e 's,MODULE_PATHNAME,$libdir/tsearch2,g' tsearch.sql.in >tsearch2.sql
cp untsearch.sql.in untsearch2.sql
gcc -O2 -Wall -Wmissing-prototypes [...]
--
Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4
"Changing the world ... one keyboard at a time!"
(www.DVzine.org)
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
Is PGXS on VPATH builds supported?
Probably not in the way you're thinking. IIRC pgxs.mk explicitly resets
VPATH, and I think it has to do that because any VPATH embedded in
Makefile.global would represent what was done at the time of building
the PG installation --- which has zip to do with where the PGXS-using
software is located.
It might work to explicitly set VPATH from the make command line:
make USE_PGXS=1 VPATH=whatever
as this should override the assignments in the makefiles.
regards, tom lane
Dear Alvaro,
sorry for this late response.
Is PGXS on VPATH builds supported?
Probably not in the way you're thinking. IIRC pgxs.mk explicitly resets
VPATH, and I think it has to do that because any VPATH embedded in
Makefile.global would represent what was done at the time of building
the PG installation --- which has zip to do with where the PGXS-using
software is located.It might work to explicitly set VPATH from the make command line:
make USE_PGXS=1 VPATH=whatever
as this should override the assignments in the makefiles.
Indeed.
There were some kind of issue with VPATH so that it was scratched when
building under pgxs.
ifdef PGXS
# We assume that we are in src/makefiles/, so top is ...
top_builddir := $(dir $(PGXS))../..
include $(top_builddir)/src/Makefile.global
top_srcdir = $(top_builddir)
srcdir = .
VPATH =
endif
Maybe something clever could be done with relative VPATHs, or by trying to
translate prefixes? On the other hand, I'm not a VPATH fan;-)
--
Fabien.