yocto linux dns,yocto-sumo源码解析(一): o

oe-init-build-env是yocto构建环境运行的第一个脚本,通过运行下面的命令:

. oe-init-build-env build-arm64

即可对yocto项目进行构建,顾名思义,该脚本主要目的还在于给yocto项目构建进行环境准备,在运行前后,可以观察到本地的一些变化,先看环境变量上的一些变化:

98666a9a7e13bb367370f1c085c089b8.png

对于原有环境变量,yocto修改了下面几个环境变量:

OLDPWD:记录脚本运行前的工作目录;

PATH:修改执行程序搜索路径,这样就可以在后续操作中运行bitbake等命令;

PWD:记录脚本运行后的工作目录;

BBPATH:记录BBPATH,具体含义,在后面的分析当中进行阐述;

BUILDDIR:记录yocto构建目录;

BB_ENV_EXTRAWHITE: 记录BB_ENV_EXTRAWHITE,具体含义,在后面的分析当中进行阐述。

除了对环境变量进行修改,同时也在本地建立了build-arm64这个构建目录。

下面是oe-init-build-env源码:

if [ -n "$BASH_SOURCE" ]; then

THIS_SCRIPT=$BASH_SOURCE

elif [ -n "$ZSH_NAME" ]; then

THIS_SCRIPT=$0

else

THIS_SCRIPT="$(pwd)/oe-init-build-env"

fi

if [ -n "$BBSERVER" ]; then

unset BBSERVER

fi

if [ -z "$ZSH_NAME" ] && [ "$0" = "$THIS_SCRIPT" ]; then

echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'"

exit 1

fi

if [ -z "$OEROOT" ]; then

OEROOT=$(dirname "$THIS_SCRIPT")

OEROOT=$(readlink -f "$OEROOT")

fi

unset THIS_SCRIPT

export OEROOT

. $OEROOT/scripts/oe-buildenv-internal &&

TEMPLATECONF="$TEMPLATECONF" $OEROOT/scripts/oe-setup-builddir || {

unset OEROOT

return 1

}

unset OEROOT

[ -z "$BUILDDIR" ] || cd "$BUILDDIR"

脚本逻辑也不复杂,主要步骤:

1、设置THIS_SCRIPT变量,若BASH_SOURCE不为空,THIS_SCRIPT指向BASH_SOURCE,若ZSH_NAME不为空,THIS_SCRIPT指向脚本文件本身,缺省情况下,THIS_SCRIPT指向oe-init-build-env脚本文件绝对路径;

2、重置BBSERVER变量;

3、检查oe-init-build-env运行方式,确认一定是以“. oe-init-build-env ”的方式运行;

4、运行scripts/oe-buildenv-internal以及scripts/oe-setup-builddir脚本;

5、进入构建目录;

从上面5个步骤来看,关于环境变量的变化,并没有在该脚本进行修改,因此只有可能在oe-buildenv-internal以及oe-setup-builddir中进行,具体情况,将在下回分解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值