runqemu: report error if TMPDIR cannot be determined
authorScott Garman <scott.a.garman@intel.com>
Sat, 23 Jul 2011 01:23:27 +0000 (18:23 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 25 Jul 2011 11:54:34 +0000 (12:54 +0100)
Invoking runqemu outside of the build directory for an
in-tree setup results in an empty TMPDIR because bitbake -e
cannot be run to find it.

A symptom of this problem is running runqemu and getting the
following error:

Error: Unable to find tunctl binary in <directory>

Catch this case and report the error to the user.

This fixes [YOCTO #1278]

(From OE-Core rev: ab5544ac801a976b56468ade0f5d2e95c11feb87)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/runqemu

index 5aed25a..dacaf7c 100755 (executable)
@@ -272,22 +272,27 @@ setup_tmpdir() {
 
         # We have bitbake in PATH, get TMPDIR from bitbake
         TMPDIR=`bitbake -e | grep TMPDIR=\" | cut -d '=' -f2 | cut -d '"' -f2`
+        if [ -z "$TMPDIR" ]; then
+            echo "Error: this script needs to be run from your build directory,"
+            echo "or you need to explicitly set TMPDIR in your environment"
+            exit 1
+        fi
     fi
 }
 
 setup_sysroot() {
-       # Toolchain installs set up $OECORE_NATIVE_SYSROOT in their
-       # environment script. If that variable isn't set, we're
-       # either in an in-tree build scenario or the environment
-       # script wasn't source'd.
-       if [ -z "$OECORE_NATIVE_SYSROOT" ]; then
-               setup_tmpdir
-               BUILD_ARCH=`uname -m`
-               BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
-               BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
-
-               OECORE_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
-       fi 
+    # Toolchain installs set up $OECORE_NATIVE_SYSROOT in their
+    # environment script. If that variable isn't set, we're
+    # either in an in-tree build scenario or the environment
+    # script wasn't source'd.
+    if [ -z "$OECORE_NATIVE_SYSROOT" ]; then
+        setup_tmpdir
+        BUILD_ARCH=`uname -m`
+        BUILD_OS=`uname | tr '[A-Z]' '[a-z]'`
+        BUILD_SYS="$BUILD_ARCH-$BUILD_OS"
+
+        OECORE_NATIVE_SYSROOT=$TMPDIR/sysroots/$BUILD_SYS
+    fi 
 }
 
 # Locate a rootfs image based on defaults defined above