学习笔记-uboot的makefile
1、uboot的版本号
uboot的版本号分3个级别:
VERSION:主板本号
PATCHLEVEL:次版本号
SUBLEVEL:再次版本号
EXTRAVERSION:另外附加的版本信息
这4个用.分隔开共同构成了最终的版本号。
Makefile中版本号最终生成了一个变量U_BOOT_VERSION,这个变量记录了Makefile中配置的版本号。
2、shell 中的 | 表示管道,前一个输出作为后一个的输入。
3、HOSTARCH和HOSTOS
HOSTARCH:主机的架构
HOST:主机
ARCH:architecture 架构的缩写,表示CPU的架构
HOSTOS:主机的操作系统
4、静默编译
主要是判断make 时的输入的参数,如果输入有 s 参数,会将 echo 替换为空,就是不会打印。
如果没有 s 参数,则是 echo 会输出log。
5、编译的两种方法
Makefile提供两种编译管理方法。
(1)原地编译:在.c文件当前的目录下,直接编译.o文件放在同一文件夹下。
坏处:污染了源文件目录,无法同时维护2个或2个以上的配置编译方式。
(2)单独输出文件夹方式编译:
编译时另外指定一个输出目录,将生成的编译文件放到指定的目录下。
1)make O=输出目录 [优先级比较高]
2)export BUILD DIR = 输出目录 然后再make
6、OBJTREE、SRCTREE、TOPDIR
(1)OBJTREE: 编译出的.o 文件存放的目录的根目录。在默认编译下,OBJTREE就是当前目录。
(2)SRCTREE: 源码目录,当前源码的根目录。
默认编译下,OBJTREE与SRCTREE 相等。Makefile定义这两个变量,就要是为了 make o=xx 的
(3)TOPDIR:
7、MKCONFIG
MKCONFIG 是Makefile中定义的一个变量(在这里定义,后面使用),它的值就是我们源码目录下面的mkconfig。
mkconfig是一个脚本,这个脚本就是uboot配置阶段的配置脚本。