全球旧事资料 分类
Li
ux内核Makefile浅析
1.配置系统的基本结构Li
ux内核的配置系统由三个部分组成,分别是:1Makefile:分布在Li
ux内核源代码中的Makefile,定义Li
ux内核的编译规则;2配置文件(co
figi
):给用户提供配置选择的功能;3配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于Ncurses图形界面以及基于Xwi
dows图形界面的用户配置界面,各自对应于Makeco
fig、Makeme
uco
fig和makexco
fig)。这些配置工具都是使用脚本语言,如TclTK、Perl编写的(也包含一些用C编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写Makefile和配置文件就可以。所以,在本文中,我们只对Makefile和配置文件进行讨论。另外,凡是涉及到与具体CPU体系结构相关的内容,我们都以ARM为例,这样不仅可以将讨论的问题明确化,而且对内容本身不产生影响。2.Makefile21Makefile概述Makefile的作用是根据配置的情况,构造出需要编译的源文件列表,然后分别编译,并把目标代码链接到一起,最终形成Li
ux内核二进制文件。由于Li
ux内核源代码是按照树形结构组织的,所以Makefile也被分布在目录树中。Li
ux内核中的Makefile以及与Makefile直接相关的文件有:1Makefile:顶层Makefile,是整个内核配置、编译的总体控制文件。2co
fig:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果(如makeco
fig)。3archMakefile:位于各种CPU体系目录下的Makefile,如archarmMakefile,是针对特定平台的Makefile。4各个子目录下的Makefile:比如driversMakefile,负责所在子目录下源代码的管理。5Rulesmake:规则文件,被所有的Makefile使用。用户通过makeco
fig配置后,产生了co
fig。顶层Makefile读入co
fig中的配置选择。顶层Makefile有两个主要的任务:产生vmli
ux文件和内核模块(module)。为了达到此目的,顶层Makefile递归的进入到内核的各个子目录中,分别调用位于这些子目录中的Makefile。至于到底进入哪些子目录,取决于内核的配置。在顶层Makefile中,有一句:i
cludearchARCHMakefile,包含了特定CPU体系结构下的Makefile,这个Makefile中包含了平台相关的信息。位于各个子目录下的Makefile同样也根据co
fig给出的配置信息,构造出当前配置下需要的源文件列表,并在文件的最后有i
cludeTOPDIRRulesmake。
fRulesmake文件起着非常重要的作用,它定义r
好听全球资料 返回顶部