当前位置:嗨网首页>书籍在线阅读

18-内核Makefile

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.4.2 内核Makefile

在构建内核时,makefile会扫描配置文件,并根据其内容决定需要进入哪些目录和编译哪些源文件。在前面的例子中,我们想对两个定制硬件平台(Vega和Constellation)添加支持,为了完成这个任务,我们来看一下相关的makefile,它会读取配置文件并根据其中的定制选项而采取行动。

因为在这个例子中你是在处理与硬件相关的选项,现假设有两个硬件设置模块,分别称为vega_setup.c和constellation_setup.c,代表了两块定制硬件板。我们已经将这两个C源文件放在了内核源码树的.../arch/arm/mach-ixp4xx子目录中。代码清单4-11显示了这个目录中的makefile的完整内容,这个makefile来自一个最新的内核版本。

代码清单4-11 .../arch/arm/mach-ixp4xx内核子目录中的Makefile

56.png 这个makefile之简单也许会让你感到惊讶。而仅仅为此,内核构建系统的开发人员就已经做了大量的工作。对于只是想在内核中为定制硬件添加支持的普通开发人员,内核构建系统的良好设计让这类定制工作很容易[16]

[16] 实际上,内核构建系统是很复杂的,但这个复杂性被巧妙地隐藏起来了,一般的开发人员不需要关心。

看一下这个makefile,我们的目的是基于配置选项有条件地引入新的硬件设置函数,而我们该如何做到这一点是显而易见的。只需将下面两行加到makefile的末尾就大功告成了:

57.png 完成这些步骤后,我们的工作就完成了。我们在内核中简单地添加了一些设置函数,以支持具体的定制的硬件。采用类似方法,你应该能够自行修改内核的配置/构建系统了。