S5PV210-uboot解析(一)-主Makefile分析

本文详细分析了S5PV210 uboot的主Makefile,包括版本信息定义、主机架构与系统的判断、静默编译的实现、编译方式的选择(原地编译与单独输出文件夹编译)、目标对象与库文件的配置,以及交叉编译工具的设定。此外,还提到了针对不同架构的特定配置,如针对PPC和ARM的设置,以及最终生成的文件如u-boot.bin的重要性。
摘要由CSDN通过智能技术生成
主Makefile分析
——uboot源码是由九鼎创展移植的三星S5PV210(s5pc11x)板子的uboot。
Makefile
uboot的主Makefile在uboot源码的根目录下。

首先是简介,随后是定义了四个变量,用来描述uboot的版本信息。

VERSION = 1
PATCHLEVEL = 3
SUBLEVEL = 4
EXTRAVERSION =
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
VERSION_FILE = $(obj)include/version_autogenerated.h
 
HOSTARCH := $(shell uname -m | \
    sed -e s/i.86/i386/ \
        -e s/sun4u/sparc64/ \
        -e s/arm.*/arm/ \
        -e s/sa110/arm/ \
        -e s/powerpc/ppc/ \
        -e s/ppc64/ppc/ \
        -e s/macppc/ppc/)
 
HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
        sed -e 's/\(cygwin\).*/cygwin/')
 
export  HOSTARCH HOSTOS

VERSION表示uboot的版本,PATCHLEVEL表示补丁版本,SUBLEVEL表示次级版本,EXTRAVERSION则是额外信息。
而uboot的总版本U_BOOT_VERSION则是 $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)。
下一句根目录的include/version_autogenerated.h里面就存储了版本信息“#define U_BOOT_VERSION "U-Boot 1.3.4"
”这个文件是uboot编译后自动产生的,源码中并没有。

HOSTARCH表示主机架构,HOSTOS表示主机系统。这两个变量导出为外部变量,会在后面、config.mk等地方使用。

接下来是静默编译
MAKEFLAGS是Makefile的一个变量,用来存储flags,即make时附带的参数,静默编译就是make -s
当发现s参数时,Makefile就会将XECHO变量赋值空,不会产生编译信息。(只是不产生Makefile的编译信息,其他的CC、LD等工具还是会产生编译、链接等信息。)

# Allow for silent builds
ifeq (,$(findstring s,$(MAKEFLAGS)))
XECHO = echo
else
XECHO = :
endif

接下来是两种编译方式:原地编译和单独输出文件夹编译
# U-boot build supports producing a object files to the separate external
# directory. Two use cases are supported:
#
# 1) Add O= to the make command line
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值