I.MX6U-系统移植-2-顶层Makefile分析

2023-11-08 13:50

本文主要是介绍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分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/370281

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl