我有一个与此类似的Makefile:
.PRECIOUS: do/%.build
do/%.install: do/%.build
touch $@
do/%.build:
touch $@
我的意图是所有/ .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行以避免自动删除构建标记这一事实有关?
此致 蒂诺