#!/bin/sh 
 | 
  
 | 
# OE-Core Build Environment Setup Script 
 | 
# 
 | 
# Copyright (C) 2006-2011 Linux Foundation 
 | 
# 
 | 
# SPDX-License-Identifier: GPL-2.0-or-later 
 | 
# 
 | 
  
 | 
if ! $(return >/dev/null 2>&1) ; then 
 | 
    echo 'oe-buildenv-internal: error: this script must be sourced' 
 | 
    echo '' 
 | 
    echo 'Usage: . $OEROOT/scripts/oe-buildenv-internal &&' 
 | 
    echo '' 
 | 
    echo 'OpenEmbedded oe-buildenv-internal - an internal script that is' 
 | 
    echo 'used in oe-init-build-env to initialize oe build environment' 
 | 
    echo '' 
 | 
    exit 2 
 | 
fi 
 | 
  
 | 
# It is assumed OEROOT is already defined when this is called 
 | 
if [ -z "$OEROOT" ]; then 
 | 
    echo >&2 "Error: OEROOT is not defined!" 
 | 
    return 1 
 | 
fi 
 | 
  
 | 
if [ -z "$OE_SKIP_SDK_CHECK" ] && [ -n "$OECORE_SDK_VERSION" ]; then 
 | 
    echo >&2 "Error: The OE SDK/ADT was detected as already being present in this shell environment. Please use a clean shell when sourcing this environment script." 
 | 
    return 1 
 | 
fi 
 | 
  
 | 
# We potentially have code that doesn't parse correctly with older versions  
 | 
# of Python, and rather than fixing that and being eternally vigilant for  
 | 
# any other new feature use, just check the version here. 
 | 
py_v35_check=$(python3 -c 'import sys; print(sys.version_info >= (3,5,0))') 
 | 
if [ "$py_v35_check" != "True" ]; then 
 | 
    echo >&2 "BitBake requires Python 3.5.0 or later as 'python3 (scripts/install-buildtools can be used if needed)'" 
 | 
    return 1 
 | 
fi 
 | 
unset py_v35_check 
 | 
  
 | 
if [ -z "$BDIR" ]; then 
 | 
    if [ -z "$1" ]; then 
 | 
        BDIR="build" 
 | 
    else 
 | 
        BDIR="$1" 
 | 
        if [ "$BDIR" = "/" ]; then 
 | 
            echo >&2 "Error: / is not supported as a build directory." 
 | 
            return 1 
 | 
        fi 
 | 
  
 | 
        # Remove any possible trailing slashes. This is used to work around 
 | 
        # buggy readlink in Ubuntu 10.04 that doesn't ignore trailing slashes 
 | 
        # and hence "readlink -f new_dir_to_be_created/" returns empty. 
 | 
        BDIR=$(echo $BDIR | sed -re 's|/+$||') 
 | 
  
 | 
        BDIR=$(readlink -f "$BDIR") 
 | 
        if [ -z "$BDIR" ]; then 
 | 
            PARENTDIR=$(dirname "$1") 
 | 
            echo >&2 "Error: the directory $PARENTDIR does not exist?" 
 | 
            return 1 
 | 
        fi 
 | 
    fi 
 | 
    if [ -n "$2" ]; then 
 | 
        BITBAKEDIR="$2" 
 | 
    fi 
 | 
fi 
 | 
if [ "${BDIR#/}" != "$BDIR" ]; then 
 | 
    BUILDDIR="$BDIR" 
 | 
else 
 | 
    BUILDDIR="$(pwd)/$BDIR" 
 | 
fi 
 | 
unset BDIR 
 | 
  
 | 
if [ -z "$BITBAKEDIR" ]; then 
 | 
    BITBAKEDIR="$OEROOT/bitbake$BBEXTRA" 
 | 
    test -d "$BITBAKEDIR" || BITBAKEDIR="$OEROOT/../bitbake$BBEXTRA" 
 | 
fi 
 | 
  
 | 
BITBAKEDIR=$(readlink -f "$BITBAKEDIR") 
 | 
BUILDDIR=$(readlink -f "$BUILDDIR") 
 | 
BBPATH=$BUILDDIR 
 | 
  
 | 
export BBPATH 
 | 
  
 | 
if [ ! -d "$BITBAKEDIR" ]; then 
 | 
    echo >&2 "Error: The bitbake directory ($BITBAKEDIR) does not exist!  Please ensure a copy of bitbake exists at this location or specify an alternative path on the command line" 
 | 
    return 1 
 | 
fi 
 | 
  
 | 
# Add BitBake's library to PYTHONPATH 
 | 
PYTHONPATH=$BITBAKEDIR/lib:$PYTHONPATH 
 | 
export PYTHONPATH 
 | 
  
 | 
# Make sure our paths are at the beginning of $PATH 
 | 
for newpath in "$BITBAKEDIR/bin" "$OEROOT/scripts"; do 
 | 
    # Remove any existences of $newpath from $PATH 
 | 
    PATH=$(echo $PATH | sed -re "s#(^|:)$newpath(:|$)#\2#g;s#^:##") 
 | 
  
 | 
    # Add $newpath to $PATH 
 | 
    PATH="$newpath:$PATH" 
 | 
done 
 | 
unset BITBAKEDIR newpath 
 | 
  
 | 
# Used by the runqemu script 
 | 
export BUILDDIR 
 | 
export PATH 
 | 
  
 | 
BB_ENV_EXTRAWHITE_OE="MACHINE DISTRO TCMODE TCLIBC HTTP_PROXY http_proxy \ 
 | 
HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY \ 
 | 
all_proxy NO_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY \ 
 | 
SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND \ 
 | 
SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR BBPATH_EXTRA BB_SETSCENE_ENFORCE \ 
 | 
BB_LOGCONFIG" 
 | 
  
 | 
BB_ENV_EXTRAWHITE="$(echo $BB_ENV_EXTRAWHITE $BB_ENV_EXTRAWHITE_OE | tr ' ' '\n' | LC_ALL=C sort --unique | tr '\n' ' ')" 
 | 
  
 | 
export BB_ENV_EXTRAWHITE 
 |