加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱故事小小网_铜陵站长网 (http://www.0562zz.com/)- 视频终端、云渲染、应用安全、数据安全、安全管理!
当前位置: 首页 > 教程 > 正文

u-boot Makefile完全介绍

发布时间:2021-12-13 16:25:13 所属栏目:教程 来源:互联网
导读:编译u-boot的步骤: #make XX_config XX表示某个cpu体系 #make 生成我们需要的u-boot.bin 具体可参考u-boot文件中的README。 1.设置版本 VERSION = 2010 PATCHLEVEL = 06 SUBLEVEL = EXTRAVERSION = -rc1 ifneq $(SUBLEVEL) U_BOOT_VERSION = $(VERSION).$(PA
编译u-boot的步骤:
 
#make XX_config    XX表示某个cpu体系
 
#make  生成我们需要的u-boot.bin
 
具体可参考u-boot文件中的README。
 
 
1.设置版本
 
VERSION = 2010
 
PATCHLEVEL = 06
 
SUBLEVEL =
 
EXTRAVERSION = -rc1
 
ifneq "$(SUBLEVEL)" ""
 
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
else
 
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)
 
endif
 
TIMESTAMP_FILE = $(obj)include/timestamp_autogenerated.h
 
VERSION_FILE = $(obj)include/version_autogenerated.h
 
以上定义了版本的变量U_BOOT_VERSION。
 
 
 
 
2.获取主机类型和主机系统
 
HOSTARCH := $(shell uname -m |        执行shell命令  uname -m 查看主机类型
 
sed -e s/i.86/i386/
 
    -e s/sun4u/sparc64/
 
    -e s/arm.*/arm/
 
    -e s/sa110/arm/
 
    -e s/ppc64/powerpc/
 
    -e s/ppc/powerpc/
 
    -e s/macppc/powerpc/)
 
sed -e命令进行替换,比如将i386替换成i.86,并将结果放入变量HOSTARCH 。
 
 
 
 
HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' |
 
    sed -e 's/(cygwin).*/cygwin/')
 
uname -s 查看主机操作系统,tr '[:upper:]' '[:lower:]'将所有大写变小写,然后假如有cygwin,替换成cygwin.*,并将结果放入变量HOSTOS
 
 
 
 
# Set shell to bash if possible, otherwise fall back to sh
 
SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH;
 
else if [ -x /bin/bash ]; then echo /bin/bash;
 
else echo sh; fi; fi)
 
选择/bin/bash
 
 
 
 
export  HOSTARCH HOSTOS SHELL
 
导出变量HOSTARCH HOSTOS SHELL
 
 
 
 
LC_ALL=C
 
export  LC_ALL
 
 
 
 
# Deal with colliding definitions from tcsh etc.
 
VENDOR=
 
变量为空
 
#########################################################################
 
# 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
 
# 'make O=/tmp/build all'
 
#
 
# 2) Set environement variable BUILD_DIR to point to the desired location
 
# 'export BUILD_DIR=/tmp/build'
 
# 'make'
 
#
 
# The second approach can also be used with a MAKEALL script
 
# 'export BUILD_DIR=/tmp/build'
 
# './MAKEALL'
 
#
 
# Command line 'O=' setting overrides BUILD_DIR environent variable.
 
#
 
# When none of the above methods is used the local build is performed and
 
# the object files are placed in the source directory.
 
#
 
U-boot 生成一个目标文件来分开外面的文件夹,支持两种方式:
 
 1)将 0= 加到make命令行如:
 
 make 0=/tmp/build all
 
 2) 通过设置全局环境变量BUILD_DIR如:
 
 export BUILD_DIR=/tmp/build
 
 make
 
第二种方式也可以用MAKEFILE脚本
 
 export BUILD_DIR=/tmp/build
 
 ./MAKEALL
 
通过第一种方式会覆盖环境变量 BUILD_DIR
 
 如果没有显式指定使用哪种方式,编译脚本会自动进行本地编译,目标文件被存放在当前文件夹里
 
 

(编辑:我爱故事小小网_铜陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读