我熟悉 make 和 kbuild,以及构建系统的工作原理。但是我很难理解对象目标是如何构建的!?
例如,在 Kbuild 中,如果你想在一个目录中生成一个目标文件,你将有一个 makefile,它包含以下内容:
obj-$(CONFIG_FOO) += foo.o
这评估obj-y/m
并添加foo.o
到它,我认为这个构建文件是使用调用submake
的,然后主makefile将使用或者(取决于你正在构建的方式/内容)生成所有对象目标,对吗?obj-y
obj-m
我的问题是,通常你可以从主 makefile/build 文件传递到它的 submake(即export
),但是这个obj-y
变量是在很多地方定义的,那么它的值是如何在所有这些submake
调用中构造或跟踪的?