🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
make xxx_deconfig过程详解
- 1. 前言
- 2. 概述
- 3. build变量的定义
- 4. 目标%config的定义
- 5 总结
1. 前言
UBOOT版本:uboot2018.03,开发板myimx8mmek240。
2. 概述
Ubootb编译第一步通常是执行make xxx_config,在编译指定顶层目录生成.config文件,这种方式要求厂商提供一个基础的xxx_config文件(通常来说开发者不会通过执行make menuconfig从零开始配置,这个工作过量太大了)。本文接下来的章节主要解析这条指令背后主要做了什么。我是用的开发板执行命令为:make myimx8mmek240-8mm-2g_defconfig
3. build变量的定义
在scripts/Kbuild.include 中定义:
| | ### |
| | # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj= |
| | # Usage: |
| | # $(Q)$(MAKE) $(build)=dir |
| | build := -f $(srctree)/scripts/Makefile.build obj |
4. 目标%config的定义
在顶层Makefile中定义:
| | # We need some generic definitions (do not try to remake the file). |
| | scripts/Kbuild.include: ; |
| | include scripts/Kbuild.include //注意这个引用 |
| | |
| | ...... |
| | |
| | config: scripts\_basic outputmakefile FORCE |
| | $(Q)$(MAKE) $(build)=scripts/kconfig $@ |
| | |
| | %config: scripts\_basic outputmakefile FORCE |
| | $(Q)$(MAKE) $(build)=scripts/kconfig $@ |
4.1 依赖 scripts_basic
(参考:linux内核Makefile中的变量build— 过渡篇(五))
| | # 顶层Makefile |
| | # Basic helpers built in scripts/ |
| | PHONY += scripts\_basic |
| | scripts\_basic: |
| | $(Q)$(MAKE) $(build)=scripts/basic |
| | $(Q)rm -f .tmp\_quiet\_recordmcount |
展开变量build
| | # 顶层Makefile |
| | # Basic helpers built in scripts/ |
| | PHONY += scripts\_basic |
| | scripts\_basic: |
| | $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.build obj=scripts/basic |
| | $(Q)rm -f .tmp\_quiet\_recordmcount |
make -f $(srctree)/scripts/Makefile.build obj=scripts/basic的解析如下:
这是一种不指定目标的情况,由于未指定目标,这时会使用Ma