oe-init-build-env: Improve script sourcing detection.
[scm/bb/tizen-distro.git] / oe-init-build-env
1 #!/bin/sh
2
3 # OE Build Environment Setup Script
4 #
5 # Copyright (C) 2006-2011 Linux Foundation
6 #
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2 of the License, or
10 # (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20
21 #
22 # Normally this is called as '. ./oe-init-build-env builddir'
23 #
24 # This works in most shells (not dash), but not all of them pass arg1 when
25 # being sourced.   To workaround the shell limitation use "set arg1" prior 
26 # to sourcing this script.
27 #
28 if [ -n "$BASH_SOURCE" ]; then
29    OEROOT="`dirname $BASH_SOURCE`"
30 elif [ -n "$ZSH_NAME" ]; then
31    OEROOT="`dirname $0`"
32 else
33    OEROOT="`pwd`"
34 fi
35 if [ -n "$BBSERVER" ]; then
36    unset BBSERVER
37 fi
38 THIS_SCRIPT=$OEROOT/oe-init-build-env
39
40 if [ -z "$ZSH_NAME" ] && [ "$0" = "$THIS_SCRIPT" ]; then
41    echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'"
42    exit 1
43 fi
44
45 OEROOT=`readlink -f "$OEROOT"`
46 export OEROOT
47 . $OEROOT/scripts/oe-buildenv-internal && \
48      $OEROOT/scripts/oe-setup-builddir && \
49      [ -n "$BUILDDIR" ] && cd $BUILDDIR
50 unset OEROOT
51 unset BBPATH
52 unset THIS_SCRIPT
53
54 # Shutdown any bitbake server if the BBSERVER variable is not set
55 if [ -z "$BBSERVER" ] && [ -f bitbake.lock ] ; then
56     grep ":" bitbake.lock > /dev/null && BBSERVER=`cat bitbake.lock` bitbake --status-only
57     if [ $? = 0 ] ; then
58         echo "Shutting down bitbake memory resident server with bitbake -m"
59         BBSERVER=`cat bitbake.lock` bitbake -m
60     fi
61 fi
62