嵌入式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. 根本编译衔接/组合结构如图所示。