代码段1:
define HELP_TEXT
This is the help text.
endef
.PHONY: help
help:
@echo $(HELP_TEXT)
测试:
$ make help
This is the help text.
$
代码段2:
define HELP_TEXT =
This is the help text.
endef
.PHONY: help
help:
@echo $(HELP_TEXT)
测试:
$ make help
$
这是怎么回事?根据文档,这两种语法之间的行为应该没有区别。
注意:我的GNU Make版本是3.81。
答案 0 :(得分:1)
版本3.82(2010年7月28日)的NEWS文件提到了这一点:
define
make指令现在允许在变量名称后使用变量赋值运算符,以允许简单,有条件或附加多行变量赋值。
因此,它只是GNU make 3.81中不存在的功能。实际上,在较早的make版本中,该变量称为HELP_TEXT =
,如果您尝试执行此操作,则可以看到该变量:
define HELP_TEXT =
This is the help text.
endef
.PHONY: help
help:
@echo $(HELP_TEXT =)