假设doc.pdf
是目标。
以下规则触发了doc.pdf
每当doc.refer
更新时的重新生成,但在doc.refer
根本不存在时也很高兴:
doc.pdf: doc.mom $(wildcard doc.refer)
pdfmom -e -k < $< > $@
Run Code Online (Sandbox Code Playgroud)
但是,以下模式规则并没有完成相同的任务(PDF 生成正确,但更改时不会触发重建doc.refer
):
%.pdf: %.mom Makefile $(wildcard %.refer)
pdfmom -e -k < $< > $@
Run Code Online (Sandbox Code Playgroud)
我怀疑该wildcard
命令是在%
扩展字符之前执行的。我该如何解决这个问题?
Kus*_*nda 13
GNU Make 函数wildcard
采用 shell globbing 模式并将其扩展为与该模式匹配的文件。该模式%.refer
不包含任何 shell 通配模式。
你可能想要类似的东西
%.pdf: %.mom %.refer
pdfmom -e -k < $< > $@
%.pdf: %.mom
pdfmom -e -k < $< > $@
Run Code Online (Sandbox Code Playgroud)
第一个目标将被调用用于制作PDF文件时,有一个.mom
和一个.refer
可用于文档的基本名称的文件。当没有.refer
文件可用时,将调用第二个目标。
这些目标的顺序很重要。
归档时间: |
|
查看次数: |
9187 次 |
最近记录: |