oe-init-build-env*: Allow $OEROOT to be predefined

The current implementation of oe-init-build-env and
oe-init-build-env-memres requires that they are sourced from the
directory that will be known as $OEROOT. This makes it hard to write a
wrapper script with the same name as the original OE script which,
e.g., sources the original OE script from a sub-directory.

With this change, $OEROOT can be predefined when oe-init-build-env or
oe-init-build-env-memres is sourced, allowing the original OE scripts
to be anywhere.

(From OE-Core rev: 3327e2a9222004d8ac7974cb1d9fe77c81176cfc)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Peter Kjellerstedt 2016-03-15 15:41:02 +01:00 committed by Richard Purdie
parent 3173979532
commit 16fb9b80e3
2 changed files with 18 additions and 14 deletions

View File

@ -26,30 +26,32 @@
# to sourcing this script.
#
if [ -n "$BASH_SOURCE" ]; then
OEROOT="`dirname $BASH_SOURCE`"
THIS_SCRIPT=$BASH_SOURCE
elif [ -n "$ZSH_NAME" ]; then
OEROOT="`dirname $0`"
THIS_SCRIPT=$0
else
OEROOT="`pwd`"
THIS_SCRIPT="$(pwd)/oe-init-build-env"
fi
if [ -n "$BBSERVER" ]; then
unset BBSERVER
fi
THIS_SCRIPT=$OEROOT/oe-init-build-env
if [ -z "$ZSH_NAME" ] && [ "$0" = "$THIS_SCRIPT" ]; then
echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'"
exit 1
fi
OEROOT=`readlink -f "$OEROOT"`
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 && \
[ -n "$BUILDDIR" ] && cd "$BUILDDIR"
unset OEROOT
unset BBPATH
unset THIS_SCRIPT
# Shutdown any bitbake server if the BBSERVER variable is not set
if [ -z "$BBSERVER" ] && [ -f bitbake.lock ] ; then

View File

@ -34,30 +34,32 @@ else
fi
if [ -n "$BASH_SOURCE" ]; then
OEROOT="`dirname $BASH_SOURCE`"
THIS_SCRIPT=$BASH_SOURCE
elif [ -n "$ZSH_NAME" ]; then
OEROOT="`dirname $0`"
THIS_SCRIPT=$0
else
OEROOT="`pwd`"
THIS_SCRIPT="$(pwd)/oe-init-build-env"
fi
if [ -n "$BBSERVER" ]; then
unset BBSERVER
fi
THIS_SCRIPT=$OEROOT/oe-init-build-env-memres
if [ -z "$ZSH_NAME" ] && [ "x$0" = "x$THIS_SCRIPT" ]; then
echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'"
exit 1
fi
OEROOT=`readlink -f "$OEROOT"`
if [ -z "$OEROOT" ]; then
OEROOT=$(dirname "$THIS_SCRIPT")
OEROOT=$(readlink -f "$OEROOT")
fi
unset THIS_SCRIPT
export OEROOT
. $OEROOT/scripts/oe-buildenv-internal && \
$OEROOT/scripts/oe-setup-builddir && \
[ -n "$BUILDDIR" ] && cd $BUILDDIR
unset OEROOT
unset BBPATH
unset THIS_SCRIPT
res=1
if [ -e bitbake.lock ] && grep : bitbake.lock > /dev/null ; then