On 4/23/20 12:55 AM, Craig Ringer wrote: > Patch 0001 fixes this issue with vpath postgres builds: > > $ make -C src/test/regress install-tests > /usr/bin/install: cannot create regular file > 'PGPREFIX/lib/postgresql/regress/PGPREFIX/src/test/regress/expected/errors.out': > No such file or directory > make: *** [GNUmakefile:90: install-tests] Error 1 > > (where PGPREFIX is your --prefix) > > It also makes the install-tests target a toplevel target for convenience. > > Three related bonus patches are attached in case anyone thinks they're > a good idea: > > - 0002 changes the install location of src/test/regress's > install-tests output files (sql/, expected/ etc) to > $(pkglibdir)/pgxs/src/test/regress so that PGXS resolves it as > $(top_srcdir)/src/test/regress, same as for in-tree builds. Presently > it installs in $(pkglibdir)/regress/ for some reason. This patch > applies on top of 0001. It will affect packagers. > > - 0003 makes the toplevel install-tests target also install > src/test/isolation test resources and the test modules. This patch > applies on top of either 0001 or 0002, depending on whether you want > to include 0002. > > - 0004 makes the dummy 'check' target in pgxs.mk <http://pgxs.mk> > optional for extensions that define the new PGXS > variable NO_DUMMY_CHECK_TARGET . This lets extensions that want to > define a 'check' target do so without having make complain at them > about redefined targets. This patch is independent of the others and > can apply on master directly. > > >
I've come up with a slightly nicer version of your patch 1, which I propose to commit and backpatch before long. I'll leave the others for another day. Let's revisit after we get through the release. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
diff --git a/GNUmakefile.in b/GNUmakefile.in index 6d1b5a06c5..afdfd9f0a6 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -72,6 +72,7 @@ $(call recurse,check-world,src/test src/pl src/interfaces/ecpg contrib src/bin,c $(call recurse,checkprep, src/test src/pl src/interfaces/ecpg contrib src/bin) $(call recurse,installcheck-world,src/test src/pl src/interfaces/ecpg contrib src/bin,installcheck) +$(call recurse,install-tests,src/test/regress,install-tests) GNUmakefile: GNUmakefile.in $(top_builddir)/config.status ./config.status $@ diff --git a/src/test/regress/GNUmakefile b/src/test/regress/GNUmakefile index 1a3164065f..c830627b00 100644 --- a/src/test/regress/GNUmakefile +++ b/src/test/regress/GNUmakefile @@ -87,8 +87,8 @@ regress_data_files = \ install-tests: all install install-lib installdirs-tests $(MAKE) -C $(top_builddir)/contrib/spi install - for file in $(regress_data_files); do \ - $(INSTALL_DATA) $$file '$(DESTDIR)$(pkglibdir)/regress/'$$file || exit; \ + for file in $(subst $(srcdir)/,,$(regress_data_files)); do \ + $(INSTALL_DATA) $(srcdir)/$$file '$(DESTDIR)$(pkglibdir)/regress/'$$file || exit; \ done installdirs-tests: installdirs