U-Boot Makefile编译常用命令
对于U-Boot常常需要用Makefile编译,而这又需要对U-Boot顶层Makefile进行分析,虽然能深度了解常用命令的意义。但对于使用而言,意义不大。因此,本文章整理了一些常用的命令,并给出简单解释,使其快速记住上手。
参考手册: [ 正点原子 ] I . M X 6 U 嵌入式 L i n u x 驱动开发指南 V 1.8 \color{red}{[正点原子]I.MX6U嵌入式Linux驱动开发指南V1.8} [正点原子]I.MX6U嵌入式Linux驱动开发指南V1.8
归类 | 变量/指令 | 意义 |
---|---|---|
版本号 | V E R I O N \color{green}{VERION } VERION =xxx | 主版本号 |
版本号 | P A T C H L E V E L \color{green}{PATCHLEVEL} PATCHLEVEL=xxx | 补丁版本号 |
MAKEFLAGS 变量 | ( M A K E ) − C s u b d i r \color{green}{(MAKE) -C subdir} (MAKE)−Csubdir | -C指定子目录 $(CURDIR)表示当前目录 |
命令输出 | V = 1 \color{green}{V=1} V=1 | 输出完整命令 |
静默输出 | V = 0 \color{green}{V=0 } V=0或者空 | 输出短命令 |
静默输出 | m a k e − s \color{red}{make -s } make−s | 输出短命令 |
设置输出目录 | m a k e O = o u t \color{red}{make O=out } makeO=out | 设置编译结果输出目录,out表示目录 |
代码检查 | m a k e C = 1 \color{red}{make C=1 } makeC=1 | 检查需要重新编译的文件 |
代码检查 | m a k e C = 2 \color{red}{make C=2 } makeC=2 | 检查所有源文件 |
模块编译 | m a k e M = d i r 或者 m a k e S U B D I R S = d i r \color{red}{make M=dir }或者{make SUBDIRS=dir } makeM=dir或者makeSUBDIRS=dir | 单独编译dir目录下文件 |
获取主机架构 | H O S T A R C H \color{green}{HOSTARCH} HOSTARCH | 获取主机架构 |
获取主机系统 | H O S T O S \color{green} {HOSTOS} HOSTOS | 获取主机系统 |
设置目标架构 | A R C H ? = a r m \color{green} {ARCH ?= arm} ARCH?=arm m a k e A R C H = a r m \color{red} {make ARCH=arm} makeARCH=arm | 设置ARM架构 |
设置交叉编译器 | C R O S S _ C O M P I L E ? = a r m − l i n u x g n u e a b i h f − \color{green} { CROSS\_COMPILE ?= arm-linuxgnueabihf-} CROSS_COMPILE?=arm−linuxgnueabihf− m a k e C R O S S _ C O M P I L E = a r m − l i n u x g n u e a b i h f − \color{red} {make CROSS\_COMPILE= arm-linuxgnueabihf-} makeCROSS_COMPILE=arm−linuxgnueabihf− | 设置交叉编译器 |
配置文件 | K C O N F I G ? = . c o n f i g \color{green}{KCONFIG ?= .config} KCONFIG?=.config | .config为实时有效配置,xxx_deconfig为初始配置 |
注:
- 绿色 \color{green}{绿色} 绿色 表示在Makefile里面改写
- 红色 \color{red}{红色} 红色 表示在终端输入
m
a
k
e
\color{green}{make}
make
x
x
x
_
d
e
f
c
o
n
f
i
g
\color{green}{xxx\_defconfig }
xxx_defconfig配置uboot,该命令运行过程如下图所示:
m
a
k
e
\color{green}{make}
make用于编译 uboot,该命令用于生成 u-boot.bin 文件和其他的一些与 uboot 有关的文件,如 u-boot.imx 等。