On Tue, Jun 23, 2015 at 02:31:03PM +0900, Michael Paquier wrote: > On Tue, Jun 23, 2015 at 12:11 AM, Sandro Santilli <s...@keybit.net> wrote: > > I've noted that upgrading from PostgreSQL 9.3 to 9.5 I'm suddenly > > unable to specify a "check" rule in the Makefile that includes the > > PGXS one. The error is: > > > > $ make check > > rm -rf ''/tmp_install > > make -C '/home/postgresql-9.5/lib/pgxs/src/makefiles/../..' > > DESTDIR=''/tmp_install install > > make[1]: Entering directory `/home/postgresql-9.5/lib/pgxs' > > make[1]: *** No rule to make target `install'. Stop. > > make[1]: Leaving directory `/home/postgresql-9.5/lib/pgxs' > > make: *** [temp-install] Error 2 > > > > I tracked the dangerous -rf to come from Makefile.global and it's empty > > string being due to abs_top_builddir not being define in my own Makefile. > > But beside that, which I can probably fix, it doesn't sound correct > > that a "check" rule insists in finding an "install" rule. > > Oops, this is a regression, and a dangerous one indeed. This is caused > by dcae5fac. > > One fix is to use NO_TEMP_INSTALL=yes in Makefile.global in the > context of PGXS, like in the patch attached, this variable needing to > be set before Makefile.global is loaded. We could as well use directly > PGXS in the section "Testing", but that does not sound appealing for > Makefile.global's readability.
Thanks, setting NO_TEMP_INSTALL=yes in the including Makefile fixes this issue. > > I'm also > > surprised that there's no warning coming out from the "make" invocation > > given I'm defining a "check" rule myself (after inclusion). > > Why? It looks perfectly normal to me to be able to define your own > check rule. That's more flexible this way. I'm surprised because I used to get warnings on overrides, and I actually still get them for other rules. For example: Makefile:192: warning: overriding commands for target `install' /home/postgresql-9.3.4/lib/pgxs/src/makefiles/pgxs.mk:120: warning: ignoring old commands for target `install' The same warning isn't raised for the "check" rule, while it is clearly defined in some upper Makefile (as shown by the forced-install-bug). > Thoughts? Mixed... One one hand I'm happy to implement my own rules, but in this specific case the lack of a warning left me with no hint about where the offending "check" rule was defined. --strk; -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers