bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: simple assignment of target-specific variables


From: David Boyce
Subject: Re: simple assignment of target-specific variables
Date: Tue, 9 Jun 2020 09:01:02 -0700

I think you misunderstood the point of my message. The date doesn't matter here, it was just a random command in a demo makefile. In fact the command was originally "hostname" but I was concerned about leaking even the smallest amount of internal data about my workplace so I figured "date" was safest since the time is public info.

> There could be multiple places where it is needed.

When I say "needed" here I mean specifically that the recipe runs. Clearly a target-specific variable is 'needed' iff the target is built. It's not a question of how many places the variable is expanded, it's a boolean thing: the target is built or not built, the target-specific variable is needed or not.

David

On Tue, Jun 9, 2020 at 8:52 AM Dmitry Goncharov via Bug reports and discussion for GNU make <bug-make@gnu.org> wrote:
On Tue, Jun 9, 2020 at 9:10 AM David Boyce <dboyce@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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]