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.1536241...@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)