我正在玩弄制作文件和 VPATH 变量。基本上,我从几个不同的地方(由 VPATH 指定)获取源文件,然后使用我想要的 .o 文件列表将它们编译到当前目录中。
到目前为止一切顺利,现在我将依赖信息生成到一个名为“.depend”的文件中,并将其包括在内。如果包含文件不存在,Gnmake 将尝试使用到目前为止定义的规则来创建包含的文件,所以没关系。基本上,我的 makefile 看起来像这样。
VPATH=A/source:B/source:C/source
objects=first.o second.o third.o
executable: $(objects)
.depend: $(objects:.o=.c)
$(CC) -MM $^ > $@
include .depend
现在对于真正的问题,我可以以任何方式抑制 .depend 文件的生成吗?我目前正在一个 clearcase 环境中工作-> sloooow,所以我希望在更新依赖信息时对其进行更多控制。
这或多或少是一个学术练习,因为我可以在执行 make 之前将它包装在一个触及 .depend 文件的脚本中(从而使其比任何源文件都更新),但如果我能以某种方式知道它会很有趣使用“纯”制作压制它。
我无法删除对源文件的依赖(即简单地使用.depend:
),因为我依赖于$^
变量来为我做 VPATH 解析。
如果有任何方法可以仅因更新#include
指令而更新依赖项,那当然会更好..但我并没有为此屏住呼吸.. :)