调用目标时如何更新变量?

How to update a variable when target is called?

我有一个变量在调用虚假目标之前不应计算,因为它将具有空值,例如:

VAR = /home/directory/file

.PHONY: target
target: 
  $(mkdir -p /home/directory)
  $(touch /home/directory/file)

target: 之后添加一个 eval:

target:
    $(eval VAR = /home/directory/file)

并删除第一行 (VAR = ...)。