Makefile始终运行目标

Ada*_*deg 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
Run Code Online (Sandbox Code Playgroud)

当我运行它时,devel/bar目标总是被调用.我希望它可以调用convert,检查文件devel/bar,并仅在找不到该文件时调用该目标.如果我删除它的依赖init,一切都按照我的预期工作.我究竟做错了什么?

rob*_*off 6

您没有创建一个名为的文件init,因此init总是过时的.因此,依赖它的一切都是过时的.