4
我可能会错过一些很明显与这个Makefile:Makefile文件始终运行目标
convert: devel/bar
touch convert
init: devel/foo
echo 'init'
devel/foo:
mkdir -p devel
touch devel/foo
devel/bar: init
touch devel/bar
当我运行它时,devel/bar
目标始终被调用。我期望它调用convert
,检查文件devel/bar
,并且只有在找不到该文件时才调用该目标。如果我删除它对init
的依赖关系,那么一切都按我的预期工作。我究竟做错了什么?
使用'.PHONY:init'将保持'就算他创建了一个名为'init'文件init'外的日期。听起来和他想要的完全相反。 –
哎呀,对不起。 '.INTERMEDIATE'可能会诀窍。但是,这就是它运行目标的原因 - 它试图首先创建一个名为init的文件。 –