《朱老师物联网大讲堂》学习笔记
学习地址:www.zhulaoshi.org
这节课先分析了下面这部分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/')
uboot version分好几个“阶段”
VERSION可以理解为为主版本号,
PATHLEVEL:可以理解为次版本号,
SUBLEVEL:可以理解为再次版本号,
EXTRAVERSION:添加附加信息的版本号,
这4项“版本号",形成一个最终的版本号,
在Makefile中,就是U_BOOT_VERSION这个变量作为记录版本号的记录,
后面那个VERSION_FILE是编译后才生成的,所以开始去找那个文件,是找不到的,
之后是变量HOSTARCH和HOSTOS,
有三个要强调,
一个是shell uname,
使用uname得到的是linux,使用uname -m得到的是i686,
sed,
经过sed后,如果你是i.86即i686,得到的就是i386,
还有管道 | ,
ps:在我的机器中,
uname得到的是Linux,
uname -m 得到的是i686,