为什么makefile函数也适用于配方部分?

时间:2017-10-23 00:59:49

标签: makefile

根据文档,在配方部分,选项卡后的代码发送到shell。那么shell不应该知道makefile函数。例如

a:
<tab>$(info ===)

如果我运行make a,则输出

===
make: `a' is up to date.

为什么呢? Shell不知道$(info ===),为什么它可以输出===

1 个答案:

答案 0 :(得分:2)

$(info ...)不是由shell解释的,它实际上是make中的一个特殊函数。 info函数打印扩展的参数,在这种情况下,它只是一个常量===回到控制台。以下是GNU文档的摘录:

  

此函数只是将其(扩展)参数打印到标准输出...此函数扩展的结果是空字符串。

您可以详细了解here