uboot之Makefile分析

一、uboot主Makefile分析

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

这是uboot的Makefile的24~43行。

    1、uboot的版本号分3个级别:

        VERSION:主板本号

        PATCHLEVEL:次版本号

        SUBLEVEL:再次版本号

        EXTRAVERSION:另外附加的版本信息

        这4个用.分隔开共同构成了最终的版本号

    2、Makefile中版本号最终生成了一个变量U_BOOT_VERSION,这个变量记录了Makefile中配置的版本号。

    3、 include/version_autogenerated.h文件是编译过程中自动生成的一个文件,所以源目录中没有,但是编

          译过后的uboot中就有了。它里面的内容是一个宏定义,宏定义的值内容就是我们在Makefile中配置的

          uboot的版本号。 

    4、HOSTARCH和HOSTOS

     (1)、直接在shell中执行uname -m得到i686,得到的值其实你当前执行这个命令的电脑的CPU的版本号。

     (2)、shell中的|叫做管道,管道的作用就是把管道前面一个运算式的输出作为后一个表达式的输入。

     (3)、HOSTARCH这个名字:HOST是主机,就是当前在做开发用的这台电脑。ARCH是architecture

             (架构)的缩写,表示CPU的架构。所以HOSTARCH就是表示主机的CPU的架构。

     (4)、这两个环境变量是主机的操作系统和主机的CPU架构,得出后保存备用,后面自然会用到。

*****************************************************************************************************

ifeq (,$(findstring s,$(MAKEFLAGS)))
XECHO = echo
else
XECHO = :
endif

    这个Makefile中的50~54行(关于静默编译)

    1、平时默认编译时命令行会打印出很多编译信息。但是有时候我们不希望看到这些编译信息,所以后台

        编译即可。这就叫静默编译。

    2、使用方法就是make -s ,-s会单独作为MAKEFLAGS传给Makefile,在50-54行这段代码的作用下XECHO

        会变为空(默认等于echo),实现了静默编译。

**********************************************************************************************************

ifdef O
ifeq ("$(origin O)", "command line")
BUILD_DIR := $(O)
endif
endif

ifneq ($(BUILD_DIR),)
saved-output := $(BUILD_DIR)

# Attempt to create a output directory.
$(shell [ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR})

# Verify if it was successful.
BUILD_DIR := $(shell cd $(BUI
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值