GNU Make:为什么调用函数不能用于简单的扩展变量? $1 未展开

GNU Make: why call function can't be used on simply expanded variables? $1 is not expanded

示例:

define a :=                                                                                                                                                                                                                      
abc := $
endef 

$(eval $(call a,b))

变量 abc 不是 b。据我所知,a 的值是 abc := ,然后调用将扩展到 abc := b

为什么call函数不能用在简单扩展的变量上,这个在GNU Make手册中没有提到

一旦一个变量通过简单的扩展被扩展,它就再也不会扩展了。这就是 := 的重点。因此,当最初定义变量时,它被设置为静态字符串 abc := 。一旦完成,它在扩展上下文中出现多少次都没有关系:它实际上不会再次改变。