我有一个makefile,它有多个目标,可以输出不同格式的数据,例如make html、make pdf、make txt等,我希望在使用这些选项时有编译前和构建后的步骤。我已经对构建前的步骤进行了排序,但不确定如何才能使构建后的步骤正常工作。
.PHONY: html pdf txt pre-build post-build
pre-build:
do-pre-build-stuff
post-build:
do-post-build-stuff
html: data.dat
generate-html data.dat
pdf: data.dat
generate-pdf data.dat
txt: data.dat
generate-txt data.dat
data.dat: pre-build
generate-some-data > data.dat如何让post-build步骤在每个目标之后运行?
发布于 2014-04-11 16:05:15
不幸的是,您必须为每个规则编写不同的规则。但是你可以用一个静态模式规则来简化它
html pdf txt: %: real-%
do-post-build-stuff
real-html: data.dat
generate-html data.dat
real-pdf: data.dat
generate-pdf data.dat
real-txt: data.dat
generate-txt data.dat这将创建目标html、pdf和txt,它们依赖于real-版本。real-版本执行实际的工作,然后在完成之后,构建后的内容作为基本目标(html、pdf和txt)中的菜谱来完成。
这个规则只是一个速记,所以你不需要把它全部写出来;结果是相同的:
html: real-html
do-post-build-stuff
pdf: real-pdf
do-post-build-stuff
txt: real-txt
do-post-build-stuffhttps://stackoverflow.com/questions/23017069
复制相似问题