我想创建一个多行字符串的makefile变量(例如电子邮件发布公告的正文).就像是
ANNOUNCE_BODY="
Version $(VERSION) of $(PACKAGE_NAME) has been released
It can be downloaded from $(DOWNLOAD_URL)
etc, etc"
Run Code Online (Sandbox Code Playgroud)
但我似乎找不到办法做到这一点.可能吗?
我正在查看另一个堆栈溢出问题,他们正在使用看起来像是 makefile 的未记录行为...如果我有以下 Makefile:
X=X
all:
@echo $@: $(X)
$(eval X=Y)
@echo $@ part2: $(X)
all2:
@echo $@: $(X)
Run Code Online (Sandbox Code Playgroud)
然后我运行:
~> make all2
all2: X
~> make all all2
running all
all: X
all part2: Y
all2: Y
Run Code Online (Sandbox Code Playgroud)
我本来希望$(eval X=Y)在 Makefile 解析时展开,并将shell变量设置X为Y配方的该行(即什么都不做)。相反,它似乎在运行配方时进行评估all,另外,它似乎设置了 make 变量。我浏览了 make 手册页和在线手册,但找不到任何描述此行为的内容(我正在使用 GNU Make 4.0)。有人可以向我指出一些描述这一点的文档,或者解释一下发生了什么吗?