Bas*_*ing 6 design-patterns makefile wildcard
我需要创建一个特殊的makefile规则,最好用一个例子来解释.也许我们用规则创建文件
%_test.pdf: %.tex
pdflatex -jobname=%_test %.tex
%_result.pdf: %.tex
pdflatex -jobname=%_result %.tex
Run Code Online (Sandbox Code Playgroud)
它工作正常.只是认为发生了更多像上面那样的模板,人们可能会想到一个通配符规则
%_WILDCARD.pdf: %.tex
pdflatex -jobname=%_$(WILDCARD) %.tex
Run Code Online (Sandbox Code Playgroud)
WILDCARD由make决定.是否有可能建立这样的规则?
受到@eldar和@andres答案的启发,我想,我自己找到了解决方案
.SECONDEXPANSION:
%.pdf: $$(firstword $$(subst _, ,%))
pdflatex -jobname=$* $+
Run Code Online (Sandbox Code Playgroud)
这正是我所需要的。这种方式的详细信息可以在GNU make 手册中找到。