如何在 Makefile 中使模式规则依赖项可选?
How can I make a pattern rule dependency optional in a Makefile?
当且仅当文件已经存在时,我想引用依赖项的时间戳。我有这样的模式规则:
%.pdf: %.sil
sile $< -o $@
这在正常情况下效果很好,但 .sil 文件会外部引用 lua 同名文件(如果存在)。我如何让 make 意识到这一点,以便它检查时间戳并在 lua 文件较新时重新生成 PDF,但如果文件根本不存在则忽略依赖关系?
这个:
%.pdf: %.sil %.lua
sile $< -o $@
…仅适用于文件存在的情况,如果不存在则导致错误。
有了足够新的 GNU make 版本,您可以使用:
.SECONDEXPANSION:
%.pdf: %.sil $$(wildcard $$*.lua)
sile $< -o $@
请参阅 SECONDEXPANSION targets and the wildcard function 的手册部分。
当且仅当文件已经存在时,我想引用依赖项的时间戳。我有这样的模式规则:
%.pdf: %.sil
sile $< -o $@
这在正常情况下效果很好,但 .sil 文件会外部引用 lua 同名文件(如果存在)。我如何让 make 意识到这一点,以便它检查时间戳并在 lua 文件较新时重新生成 PDF,但如果文件根本不存在则忽略依赖关系?
这个:
%.pdf: %.sil %.lua
sile $< -o $@
…仅适用于文件存在的情况,如果不存在则导致错误。
有了足够新的 GNU make 版本,您可以使用:
.SECONDEXPANSION:
%.pdf: %.sil $$(wildcard $$*.lua)
sile $< -o $@
请参阅 SECONDEXPANSION targets and the wildcard function 的手册部分。