【发布时间】:2014-03-11 20:01:09
【问题描述】:
正如标题所说,我只想在某个文件不存在时建立依赖关系,而不是每次更新时。
我有一个根目录(带有 makefile 的那个),其中有一个名为“example”的子目录。在我的根目录中有四个 .h 文件(functions.h、parser.h、node.h 和 exception.h),如果这些 .h 文件不存在,我想将它们复制到“example”子目录在“示例”中。
不幸的是,我不能只创建一个标准依赖项来检查“example”中的头文件,因为每次我将头文件从根目录复制到“example”时,“example”中的头文件都会被认为是更新的,并且会每次运行 make 时都会触发该依赖项。我想要一种方法让我的 makefile 将头文件从根目录复制到“example”,前提是它们不存在于“example”中。
【问题讨论】:
-
手册非常非常清楚,自动变量(例如
$@)在配方中仅有效。您不能在目标、先决条件或 make 条件语句中使用它们(因为在读入 makefile 时它们会被扩展)。在这些情况下,$@扩展为空字符串。 -
我明白了,但是因为我附加了“example/”,所以 ifeq() 仍然评估为假。感谢您清除它。我已经编辑了我的帖子以专注于剩余的问题。
标签: makefile dependencies target file-exists