I typed make aaa.zzz after touch a b c.
I got nothing.
No stdout, no stderr.
Why?
GNU Make 3.82
It doesn't work.
.SECONDEXPANSION:
%.xxx: $$(shell echo a b c)
echo in xxx
%.zzz: %.xxx $$(shell echo a b)
echo in zzz
It works. (echo a b to echo a b c)
.SECONDEXPANSION:
%.xxx: $$(shell echo a b c)
echo in xxx
%.zzz: %.xxx $$(shell echo a b c)
echo in zzz
It works. (echo a b c to echo b c)
.SECONDEXPANSION:
%.xxx: $$(shell echo b c)
echo in xxx
%.zzz: %.xxx $$(shell echo a b)
echo in zzz
It works. (echo a b to echo a)
.SECONDEXPANSION:
%.xxx: $$(shell echo a b c)
echo in xxx
%.zzz: %.xxx $$(shell echo a)
echo in zzz
-d says as below.
> make aaa.zzz -d
GNU Make 3.82
Built for x86_64-redhat-linux-gnu
...
Updating goal targets....
Considering target file `aaa.zzz'.
File `aaa.zzz' does not exist.
Looking for an implicit rule for `aaa.zzz'.
Trying pattern rule with stem `aaa'.
Trying implicit prerequisite `aaa.xxx'.
Trying pattern rule with stem `aaa.zzz'.
Trying implicit prerequisite `aaa.zzz,v'.
Trying pattern rule with stem `aaa.zzz'.
Trying implicit prerequisite `RCS/aaa.zzz,v'.
Trying pattern rule with stem `aaa.zzz'.
Trying implicit prerequisite `RCS/aaa.zzz'.
Trying pattern rule with stem `aaa.zzz'.
Trying implicit prerequisite `s.aaa.zzz'.
Trying pattern rule with stem `aaa.zzz'.
Trying implicit prerequisite `SCCS/s.aaa.zzz'.
Trying pattern rule with stem `aaa'.
Trying implicit prerequisite `aaa.xxx'.
Looking for a rule with intermediate file `aaa.xxx'.
Avoiding implicit rule recursion.
Trying pattern rule with stem `aaa'.
Trying implicit prerequisite `a'.
Trying implicit prerequisite `b'.
Trying implicit prerequisite `c'.
Trying implicit prerequisite `a'.
Trying implicit prerequisite `b'.
(END)