gnu make,include和clean target

时间:2012-07-19 01:57:21

标签: include makefile

我正在研究一个由许多项目和makefile组成的系统。每个makefile都包含来自它的依赖项的.inc文件。如果缺少依赖项,它会抱怨并告诉用户首先编译依赖项。这部分工作正常。问题是干净的目标。

如果首先清除依赖项并删除它的inc文件(因为inc文件包含编译时选项和硬路径,我们更喜欢删除它们),然后Makefile无法加载.inc文件并中止。因此,确保我们拥有正确依赖关系的机制不会让我们调用干净的目标 - 它不需要依赖关系 - 。

有没有办法根据规则包含或忽略.inc文件?

PS:因为我们已经在使用" - "用于错误检查,这不是一个选项。

1 个答案:

答案 0 :(得分:0)

防止清洁的典型方法如下:

ifneq ($(MAKECMDGOALS),clean)
include $(some .inc files)
endif

如此处https://www.gnu.org/software/make/manual/make.html#Goals

所述

尽管如果我正确理解了您遇到的错误,并不是由于失败的包含(您已经使用-include来阻止包含),而是因为您的makefile依赖于包含中的某些值。

为帮助您解决问题,我们将需要一些演示问题的代码。请阅读此处以了解操作方法:https://stackoverflow.com/help/minimal-reproducible-examplehttp://www.sscce.org/