【发布时间】:2013-10-30 14:05:41
【问题描述】:
(我的问题与Force Makefile to execute script before building targets不同)
我有以下 Makefile:
.PHONY: dump_params all
all: tmpA
tmpA: tmpB tmpC dump_params
cat $(filter tmp%,$^) > $@
tmpB: dump_params
touch $@
tmpC: dump_params
touch $@
dump_params:
echo "Makefile was run." >> config.txt
对于目标 dump_params,我想在每次调用新目标时创建/附加一个文件(以跟踪所用工具的版本)。但是,当我打电话时
make tmpA
所有目标都是从头开始构建的
$ make tmpA
echo "Makefile was run " >> config.txt
touch tmpB
touch tmpC
cat tmpB tmpC > tmpA
$ make tmpA
echo "Makefile was run." >> config.txt
touch tmpB
touch tmpC
cat tmpB tmpC > tmpA
如何防止 Make 因为目标“dump_params”而重新构建所有内容?有没有另一种方法来创建这种日志文件?
编辑:我正在使用并行制作(选项 -j)。不能在语句部分定义宏来创建文件。
【问题讨论】:
标签: makefile