我目前在我的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
它就不会加载他们中的任何一个!
答案 0 :(得分:0)
如何生成依赖项?
gcc -M ... source.c
VS
gcc -MM ... source.c
前者列出/usr/include
的标题;后者没有。