嵌入式Linux中文站针对Linux内核编译过程中的Makefile做简单阐述和说明。
Makefile 文件相当于程序编译过程中的批处理文件。是工具程序 make 运行时的输入数据文件。只要在含有 Makefile 的当前目录中键入 make 命令,它就会依据 Makefile 文件中的设置对源程序或目标代码文件进行编译、连接或进行安装等活动。
并发出命令对这些程make 工具程序能自动地确定一个大程序系统中那些程序文件需要被重新编译,序文件进行编译。在使用 make 之前,需要编写 Makefile 信息文件,该文件描述了整个程序包中各程序之间的关系,并针对每个需要更新的文件给出具体的控制命令。通常,执行程序是根据其目标文件进行更新的,而这些目标文件则是由编译程序创建的。一旦编写好一个合适的 Makefile 文件,那么在你每次修改过程序系统中的某些源代码文件后,执行 make 命令就能进行所有必要的重新编译工作。make 程序是使用 Makefile 数据文件和代码文件的最后修改时间(last-modificaTIon TIme)来确定那些文件需要进行更新,对于每一个需要更新的文件它会根据 Makefile 中的信息发出相应的命令。在 Makefile 文件中,开头为'#'的行是注释行。文件开头部分的'='赋值语句定义了一些参数或命令的缩写。
这个 Makefile 文件的主要作用是指示 make 程序最终使用独立编译连接成的 tools/目录中的 build 执行程序将所有内核编译代码连接和合并成一个可运行的内核映像文件 image 。具体是对 boot/ 中的bootsect.s、setup.s 使用 8086 汇编器进行编译,分别生成各自的执行模块。再对源代码中的其它所有程序使用 GNU 的编译器 gcc/gas 进行编译,并连接成模块 system。再用 build 工具将这三块组合成一个内核映象文件 image. 基本编译连接/组合结构如图所示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)