我有一个类似于这样的 Makefile:
.PRECIOUS: do/%.build
do/%.install: do/%.build
touch $@
do/%.build:
touch $@
我的意图是所有 do/ .install 目标都依赖于 do/ .build 目标,如果构建目标的标记文件丢失,则运行构建目标的规则,如果构建目标运行安装目标邮票较新。这在第一次运行期间工作正常:
$ make do/foo.install
touch do/foo.build
touch do/foo.install
如果构建标记较新,它也可以正常工作:
$ touch do/foo.build
$ make do/foo.install
touch do/foo.install
但是,如果存在安装标记并且缺少构建标记,则它不会按预期工作:
$ rm do/foo.build
$ make do/foo.install
make: `do/foo.install' is up to date.
安装目标未运行。我应该怎么办?这是否与我必须添加 .PRECIOUS 行以避免自动删除构建标记的事实有关?
问候,蒂诺