On Tue, Jun 9, 2020 at 9:10 AM David Boyce <dbo...@broadcom.com> wrote:
> TARGETS := aa bb cc dd
> $(TARGETS): at := $(shell set -x; date)

Despite the same name "at" those are different variables.
Given that there are 4 simple variables defined, 4 calls to date take place.

$ cat makefile
.PHONY: all
all: aa bb
aa: at := $(shell set -x; date)
$(shell sleep 5)
bb: at := $(shell set -x; date)
aa bb:
        @:$(info Making $@ at $(at))
$ make
+ date
+ date
Making aa at Tue Jun  9 11:50:08 EDT 2020
Making bb at Tue Jun  9 11:50:13 EDT 2020

Note, aa's at is 5 seconds earlier then bb's.


> But in a target-specific context should the variable be considered "defined" 
> at the time it's parsed or at the time it's needed?
There could be multiple places where it is needed.

regards, Dmitry

  • simple assign... David Boyce
    • Re: simp... Edward Welbourne
      • Re: ... Dmitry Goncharov via Bug reports and discussion for GNU make
    • Re: simp... Dmitry Goncharov via Bug reports and discussion for GNU make
      • Re: ... David Boyce
        • ... Dmitry Goncharov via Bug reports and discussion for GNU make
          • ... David Boyce
            • ... Dmitry Goncharov via Bug reports and discussion for GNU make

Reply via email to