(系统移植)3 U-boot顶层Makefile

本文详细解析了U-boot的顶层Makefile,包括版本号、MAKEFLAGS变量、编译输出目录设置、代码检查、指定模块编译、目标架构设置等关键部分。重点介绍了`make xxx_defconfig`生成.config配置文件和`make`命令编译生成u-boot.bin的过程,以及Makefile中使用的filter、firstword、wildcard和patsubst等函数。
摘要由CSDN通过智能技术生成

资料来源:正点原子嵌入式linux

目录

版本号

MAKEFLAGS变量

命令输出 V

静默输出 S

编译输出目录设置 O

代码检查 C

指定模块编译 M

获取主机架构和系统

设置目标架构、交叉编译器和配置文件

调用 scripts/Kbuild.include中的一些必要变量

交叉编译工具变量设置

导出其他变量

make xxx_defconfig ,生成.config

1.scripts_basic 目标对应的命令

2.%config目标对应的命令

make xxx_defconfig 命令总结

make过程

MakeFile中的函数

filter

firstword

wildcard

patsubst


 


版本号

VERSION = 2016
PATCHLEVEL = 03
SUBLEVEL =
EXTRAVERSION =
NAME =

MAKEFLAGS变量

MAKEFLAGS如果不做unexport声明,默认传给子make

命令输出 V

ifeq ("$(origin V)", "command line") #origin用于返回V的来源,command line表示命令行,如果命令行中输入V,则ifeq成立
  KBUILD_VERBOSE = $(V)				 # KBUILD_VERBOSE==V的数值
endif
ifndef KBUILD_VERBOSE
  KBUILD_VERBOSE = 0
endif

ifeq ($(KBUILD_VERBOSE),1)  #如果KBUILD_VERBOSE==1
  quiet =
  Q =
else					 
  quiet=quiet_   			#
  Q = @						#Q==@,Q变量定义是否省略输出完整编译信息
endif

Makefile 中会用到变量  Q 来控制编译的时候是否在终端输出完整的命令,通过命令行输入V的值便可控制是否输出编译过程。quiet用来控制输出命令长短。

静默输出 S

make -s 实现静默输出,就是不打印编译过程

ifneq ($(filter 4.%,$(MAKE_VERSION)),)	# MAKE_VERSION表示编译器版本号&#x
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值