前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >yocto-sumo源码解析(一): o

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

作者头像
py3study
发布2020-01-19 11:19:47
1.2K0
发布2020-01-19 11:19:47
举报
文章被收录于专栏:python3python3

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

  . oe-init-build-env build-arm64

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

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

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

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

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

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

  BUILDDIR:记录yocto构建目录;

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

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

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

代码语言:javascript
复制
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 <builddir>”的方式运行;

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

  5、进入构建目录;

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档