本文主要是介绍I.MX6U-系统移植-2-顶层Makefile分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1.版本号
2.MAKEFLAGS
3.命令输出
4.静默输出
5.编译结果输出目录
6.代码检查
7.模块编译
8.获取主机架构和系统
9.设置目标架构,交叉编译器和配置文件
10.调用scripts/Kbuild.include
11.交叉编译工具变量设置
12.导出其他变量
13.make_xxx_defconfig过程
14.make
1.版本号
上述信息都为该Makefile的版本:2016.3
2.MAKEFLAGS
MAKEFLAGS是make向子目录的Makefile传递的变量。
MAKEFLAGS += -rR --include-dir=$(CURDIR)
//-rR表示禁止使用内置的隐含规则和变量定义
//--include-dir表示搜索路径
//$(CURDIR)表示当前目录
通常,主目录的Makefile对子目录的Makefile编译如下
$(MAKE)-C subdir//subdir为子目录的名字
对于变量,可以采用传递给子目录或者不传递给子目录,其结果如下:
3.命令输出
这里是指编译uboot时,输出的情况可以多和少
编译时加上 V=1 则可以输出详细信息。
4.静默输出
这里指的时编译uboot时,什么都不输出
5.编译结果输出目录
指把原文件和输出文件通过 make O =out进行区别,默认为不区别
6.代码检查
make C=1:使代码检测那些需要重新编译的文件
make C=2:检测所有文件
7.模块编译
uboot中运行单独编译某个模块
make M=dir
8.获取主机架构和系统
HOSTARCH:保存主机及架构
HOSTOS:保存主机OS(操作系统)的值
9.设置目标架构,交叉编译器和配置文件
10.调用scripts/Kbuild.include
主Makefile会调用scripts/Kbuild.include这个文件夹
11.交叉编译工具变量设置
之前设置了交叉编译工具的名字,现在设置其他工具
12.导出其他变量
重要的几个变量及其意思如下:
13.make_xxx_defconfig过程
编译uboot之前需要make_xxx_defconfig命令来配置uboot
这里需要注意两条语句:
该语句为make_xxx_deconfig的依赖,会生成fixdep软件
@make -f ./scripts/Makefile.build obj=scripts/basic
该语句为make_xxx_deconfig的命令,会生成.config
@make -f ./scripts/Makefile.build obj=scripts/kconfig xxx_defconfig
14.make
这篇关于I.MX6U-系统移植-2-顶层Makefile分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!