如何指定用于评估makefile目标的目录?

时间:2017-05-17 16:27:32

标签: gnu-make

我正在编写一个gnu make文件来构建和运行C ++单元测试。我让makefile将其.o文件放在保存make文件的同一目录中。

我们有一套不同的makefile用于构建我们的产品以进行交付。这些makefile将每个.o文件放在具有相应C ++源文件的同一目录中。

我的单元测试makefile将其.o目标定义为“%.o:%。cpp”。在该makefile中,我将VPATH定义为具有.cpp文件的位置。另外,我的单元测试编译命令使用g ++ MMD和MP选项生成并使用.d文件。

所以这就是我遇到的问题。

我希望我的单元测试makefile目标只能通过查看我的单元测试makefile目录来评估.o目标。

如果产品交付makefile已经生成了源文件所在的.o,我仍然希望我的单元测试makefile只考虑其目录以确定是否需要重建.o文件。

但是,这种情况并没有发生。如果产品交付makefile已经将.o放在源代码所在的位置,则单元测试makefile会看到.o,并且它表示不需要构建.o。

在评估.o文件目标时,有没有办法强制我的单元测试makefile只考虑单元测试make文件目录?

1 个答案:

答案 0 :(得分:1)

您是说通过.o设置找到了VPATH文件吗?

您可以使用特定于模式的vpath来限制查找特定类型的文件:

vpath %.cpp $(SRCDIR)

而不是设置全局VPATH