在makefile中找到make target

时间:2011-11-30 23:57:44

标签: gcc build makefile

我目前在我的makefile中有这个:

ifneq ($(MAKECMDGOALS),clean)
-include $(DEPS_debug)
-include $(DEPS_unittest)
-include $(DEPS_release)
endif

DEPS_集合都非常大,因为它们是由gcc生成的,因此我希望在绝对必要时只包含这些依赖项。

就像现在一样,每当我使用这个makefile执行除清理之外的任何操作时,由于加载了所有依赖项文件,它会导致等待两秒钟。是的,它可能不必要地检查了无数的库标题以进行更改,但如果它不能很好地工作已经我不想搞砸它,我会被诅咒。

当我的制作目标为-include时,我只想$(DEPS_debug) debug等。

是否有比我可以使用的MAKECMDGOALS更好的变量?我想到的一个问题是,如果我使用MAKECMDGOALS来预测我的依赖项的包含,如果我稍后在makefile foo: debug release中添加一个条目并运行make foo它就不会加载他们中的任何一个!

1 个答案:

答案 0 :(得分:0)

如何生成依赖项?

gcc -M ... source.c

VS

gcc -MM ... source.c

前者列出/usr/include的标题;后者没有。