确定prerequisites to .PHONY are made target-like后。
查看docs,其中以下特殊目标似乎遵循相同的语法规则:
'EXPORT_ALL_VARIABLES'
Rabbit[predator[1]]
...
...
...
'ONESHELL'
Simply by being mentioned as a target...
我试着关注makefile:
If '.ONESHELL' is mentioned as a target...
通过运行它,并获得:
all:
@foo=bar
@echo "foo=$${foo}"
.PHONY: all
.PHONY: .ONESHELL
这肯定不是“oneshell”执行的结果。
那么,关于他们的语法规则,是否有一些foo=
更多特殊?
答案 0 :(得分:1)
.ONESHELL
应作为目标提供,而不是您在问题中指定的先决条件。如果您指定.ONESHELL: all
,则应获得foo=bar
的预期输出。这就是我在以下make
上运行makefile
时获得的结果。
.ONESHELL: all
.PHONY: all
all:
@foo=bar
@echo "foo=$${foo}"