poky-init-build-env: Enable all POSIX shells

Update the script so that it will work in more then just bash.  If bash
is not used, it will assume the PWD is the Poky location.  (This is because
BASH_SOURCE is a bash-ism, and equivalent functionality is not available in
other shells).

This has been verified with dash (see comment in the code), ksh, zsh and
of course bash.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
This commit is contained in:
Mark Hatle 2010-11-24 18:06:04 -06:00 committed by Richard Purdie
parent 86b6b09337
commit 60ccdaa0ea
2 changed files with 13 additions and 5 deletions

View File

@ -18,13 +18,21 @@
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Normally this is called as '. ./poky-init-buildenv builddir'
#
# This works in most shells (not dash), but not all of them pass arg1 when
# being sourced. To workaround the shell limitation use "set arg1" prior
# to sourcing this script.
#
if [ "x$0" = "x./poky-init-build-env" ]; then if [ "x$0" = "x./poky-init-build-env" ]; then
echo "Error: This script needs to be sourced. Please run as '. ./poky-init-build-env'" echo "Error: This script needs to be sourced. Please run as '. ./poky-init-build-env'"
elif [ "x$BASH_SOURCE" = "x" ]; then
echo "Error: You are not running a Bash shell. Please use Bash or add support for your shell to the init scripts"
else else
OEROOT="`dirname $BASH_SOURCE`" if [ -n "$BASH_SOURCE" ]; then
OEROOT="`dirname $BASH_SOURCE`"
else
OEROOT="`pwd`"
fi
OEROOT=`readlink -f "$OEROOT"` OEROOT=`readlink -f "$OEROOT"`
export OEROOT export OEROOT
. $OEROOT/scripts/poky-env-internal . $OEROOT/scripts/poky-env-internal

View File

@ -31,7 +31,7 @@ if [ "x$BDIR" = "x" ]; then
BDIR=`readlink -f "$1"` BDIR=`readlink -f "$1"`
fi fi
fi fi
if [[ "$BDIR" = /* ]] ; then if expr "$BDIR" : '/.*' > /dev/null ; then
BUILDDIR="$BDIR" BUILDDIR="$BDIR"
else else
BUILDDIR="`pwd`/$BDIR" BUILDDIR="`pwd`/$BDIR"