On 2022-Jul-22, Alvaro Herrera wrote:
> It's not very common -- we do have some target-specific variable
> assignments, but none of them use 'export'. I saw somewhere that this
> works from Make 3.77 onwards, and we require 3.80, so it should be okay.
> The buildfarm will tell us ...
Hm, so prairiedog didn't like this:
make -C libpq all
Makefile:146: *** multiple target patterns. Stop.
but I don't understand which part it is upset about. The rules are:
check installcheck: export PATH := $(CURDIR)/test:$(PATH)
check: test-build all
$(prove_check)
installcheck: test-build all
$(prove_installcheck)
I think "multiple target patterns" means it doesn't like the fact that
there are two colons in the first line. But if I use a recursive
assignment (PATH = ...), that of course doesn't work because PATH appears on
both sides of the assignment:
Makefile:146: *** Recursive variable 'PATH' references itself (eventually). Stop.
Now, maybe that colon is not the issue and perhaps the problem can be
solved by splitting the rule:
check: export PATH := $(CURDIR)/test:$(PATH)
installcheck: export PATH := $(CURDIR)/test:$(PATH)
According to 32568.1536241083@sss.pgh.pa.us, prairiedog is on Make 3.80.
Hmmm.
--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
Voy a acabar con todos los humanos / con los humanos yo acabaré
voy a acabar con todos (bis) / con todos los humanos acabaré ¡acabaré! (Bender)