以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。
(1)Makefile中刚开始定义了kernel的内核版本号。这个版本号在模块化驱动安装时会需要用到。
(2)在make编译内核时,可以通过命令行给内核makefile传参。譬如make O=xxx可以指定到另外一个单独文件夹下编译。
(3)kernel的顶层Makefile中定义了2个变量,一个是ARCH,一个是CROSS_COMPILE。
- ARCH决定当前配置编译的路径,譬如ARCH = arm的时候,将来在源码目录下去操作的arch/arm目录。
- CROSS_COMPILE用来指定交叉编译工具链的路径和前缀。
- CROSS_COMPILE = xxx,ARCH = xxx,O=xxx,这些都可以在make时,通过命令行传参的方式传给顶层Makefile。
- 因此makefile可以什么都不改,而是在命令行里面输入相应的参数(因为用了?=(如果定义了,则使用定义的,否则用默认的)),即输入make O=/tmp/mykernel ARCH=arm CROSS_COMPILE=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-