uboot主Makefile之1——HOSTARCH&HOSTOS

HOSTARCH := $(shell uname -m | \                         //注意这里的 | 是管道,即将shell uname -m执行得到的结果通过管道传给下面的sed命令

sed -e s/i.86/i386/ \              //将上面得到的结果中的i.86替换为i386,如果结果中没有i.86子串就不做替换
-e s/sun4u/sparc64/ \
-e s/arm.*/arm/ \
-e s/sa110/arm/ \
-e s/powerpc/ppc/ \
-e s/ppc64/ppc/ \
-e s/macppc/ppc/)

$(shell uname -m)表示执行uname –m的shell命令,他执行的结果是取出机器硬件名(这台机器是64位的,所以其得到的结果就是x86-84)。sed –e s/abc/def 的意思是寻找结果里面是否有’abc’字样,如果有,就用‘def’字样将其代替。

所以整条语句的意思就是,取出uname –m的结果,并在其中寻找是否有i.86字样,如果有就用i386代替,是否有arm.*(*是通配符),如果有,就用arm代替……,本台机的结果是x86-64所以还保持原样,没有用其他字符替换,所以HOSTARCH=x86-64

 

HOSTOS := $(shell uname -s | tr'[:upper:]' '[:lower:]' | \

            sed -e 's/cygwin.*/(cygwin/')

  

uname –s 表示取出本机操作系统内核名称,(这台机器是Linux),tr ‘[:upper:]’’[:lower:]’表示将结果里面的大写字符全部换成小写字符,sed –e‘s/Cygwin.*/Cygwin/’表示寻找结果里面是否有cygwin.*字符,如果有就用cygwin替换

所以整句话的结果就是HOSTOS = linux(注意第一个字母L被换成了小写l)

posted @ 2018-01-24 13:27  幻影-Andy  阅读(269)  评论(0编辑  收藏  举报