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

Reply via email to