GNU ARM汇编--(十七)u-boot的makefile和mkconfig解读
时间:11-26
来源:互联网
点击:
- IG_NAME="${1%_config}"
- ####################
- #CONFIG_NAME的值为smdk2410
- #########################
- echoconfig_
- echo${CONFIG_NAME}
- ["${BOARD_NAME}"]||BOARD_NAME="${1%_config}"
- echoboard
- echo${BOARD_NAME}
- ###########################################
- #如果BOARD_NAME在之前已经被设定了,就不做任何动作;如果为空,就设定为smdk2410.这里设定为smdk2410
- ############################################
- arch="$2"
- cpu="$3"
- if["$4"="-"];then
- board=${BOARD_NAME}
- else
- board="$4"
- fi
- ######################################################
- #设定arch变量的值为arm
- #cpu变量的值为arm920t
- #因为第四个变量为"-",所以board变量的值为smdk2410
- #######################################################
- [$#-gt4]&&["$5"!="-"]&&vendor="$5"
- [$#-gt5]&&["$6"!="-"]&&soc="$6"
- #############################################################
- #设定verdor变量的值为samsung
- #设定soc变量的值为s3c24x0
- #############################################################
- [$#-gt6]&&["$7"!="-"]&&{
- #checkifwehaveaboardconfignameintheoptionsfield
- #theoptionsfieldmavehaveaboardconfignameandalist
- #ofoptions,bothseparatedbyacolon(:);theoptionsare
- #separatedbycommas(,).
- #
- #Checkforboardname
- tmp="${7%:*}"
- if["$tmp"];then
- CONFIG_NAME="$tmp"
- fi
- #Checkifweonlyhaveacolon...
- if["${tmp}"!="$7"];then
- options=${7#*:}
- TARGETS="`echo${options}|seds:,::g`${TARGETS}"
- fi
- }
- #################################################
- #因为我们的变量个数就是6个,这一段不执行
- #################################################
- echo${ARCH}
- echo${arch}
- if["${ARCH}"-a"${ARCH}"!="${arch}"];then
- echo"Failed:$ARCH=${ARCH},shouldbe${arch}for${BOARD_NAME}"1>&2
- exit1
- fi
- ####################################################
- #ARCH是在顶层makefile中定义的,在此刻还是为空的。
- #如果ARCH已经有值了,那么就检测ARCH和arch是否匹配了.
- ####################################################
- if["$options"];then
- echo"Configuringfor${BOARD_NAME}-Board:${CONFIG_NAME},Options:${options}"
- else
- echo"Configuringfor${BOARD_NAME}board..."
- fi
- ###########################################################################
- #我们没有定义options变量,所以输出Configuringforsmdk2410board...
- ###########################################################################
- #
- #Createlinktoarchitecturespecificheaders
- #
- echo${SRCTREE}
- echo${OBJTREE}
- if["$SRCTREE"!="$OBJTREE"];then
- mkdir-p${OBJTREE}/include
- mkdir-p${OBJTREE}/include2
- cd${OBJTREE}/include2
- rm-fasm
- ln-s${SRCTREE}/arch/${arch}/include/asmasm
- LNPREFIX=${SRCTREE}/arch/${arch}/include/asm/
- cd../include
- mkdir-pasm
- else
- cd./include
- rm-fasm
- ln-s../arch/${arch}/include/asmasm
- fi
- #############################################################################
- #在makefile中我们已经知道SRCTREE和OBJTREE都是当前目录,所以这里执行else
- #进入./include目录,删除asm链接,并重新建立链接asm,指向arch/arm/include/asm
- #############################################################################
- rm-fasm/arch
- #########################################################################
- #删除include目录下的asm下的arch链接文件
- ########################################################################
- ss=
- echo${ss}
- if[-z"${ss}"];then
- echo"null"
- else
- echo"notnull"
- fi
- echo${LNPREFIX}
- if[-z"${soc}"];then
- ln-s${LNPREFIX}arch-${cpu}asm/arch
- else
- ln-s${LNPREFIX}arch-${soc}asm/arch
- fi
- ##########################################################
- #-z用来检测字符串是否为空,为空返回真
- #这里我们的soc不为空,执行else
- #将asm/arch链向arch-s3c24x0,看一下arch-s3c24x0目录,里面都是s3c24x0相关的头文件
- ##########################################################
- if["${arch}"="arm"];then
- rm-fasm/proc
- ln-s${LNPREFIX}proc-armvasm/proc
- fi
- ###########################################################
- #删除asm/proc链接文件
- #将asm/proc链向proc-armv目录,该目录下是四个头文件:domain.hprocessor.hptrace.hsystem.h
- ###########
ARM汇编u-bootmakefilemkconfi 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)