mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00

Ubuntu's /bin/sh symlinks to /bin/dash by default, so subprocess.check_call(oe-init-build-env, cwd=builddir) would be failed since pwd is builddir, and there is no $builddir/oe-init-build-env, this would lead to other confusing errors, check and error it out earlier to make it easier to locate the problem. We don't meet the problem when manually run ". oe-init-build-env" is because Ubuntu's default login shell is bash, but subprocess.check_call() doesn't respect to login shell, so the error only happens in situations like subprocess.check_call(). And also print errors to stderr as oe-buildenv-internal does. (From OE-Core rev: 632c54b7686e60ee320ed1a7ac7d889790599d27) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
65 lines
1.9 KiB
Bash
Executable File
65 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# OE Build Environment Setup Script
|
|
#
|
|
# Copyright (C) 2006-2011 Linux Foundation
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
#
|
|
# Normally this is called as '. ./oe-init-build-env <builddir>'
|
|
#
|
|
# This works in most shells (not dash), but not all of them pass the arguments
|
|
# when being sourced. To workaround the shell limitation use "set <builddir>"
|
|
# prior to sourcing this script.
|
|
#
|
|
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"
|
|
if [ ! -e "$THIS_SCRIPT" ]; then
|
|
echo "Error: $THIS_SCRIPT doesn't exist!" >&2
|
|
echo "Please run this script in oe-init-build-env's directory." >&2
|
|
exit 1
|
|
fi
|
|
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'" >&2
|
|
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"
|
|
|