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