]> code.ossystems Code Review - openembedded-core.git/commitdiff
poky-init-build-env: Breakup the environment script
authorMark Hatle <mark.hatle@windriver.com>
Wed, 24 Nov 2010 22:25:28 +0000 (16:25 -0600)
committerRichard Purdie <rpurdie@linux.intel.com>
Mon, 20 Dec 2010 23:00:25 +0000 (23:00 +0000)
Break up the scripts/poky-env-internal into two parts:
  1) Chunk that is sourced and sets up the environment
  2) Chunk that is executed and configures the build directory

OEROOT configuration was moved into the initial poky-init-build-env script.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
poky-init-build-env
scripts/poky-env-internal
scripts/poky-setup-builddir [new file with mode: 0755]

index 075070370bccc2d5674ff675b7c5f27d109721a8..7af2172a456334de03c57649bc1347421aa601f3 100755 (executable)
@@ -24,6 +24,12 @@ if [ "x$0" = "x./poky-init-build-env" ]; then
 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
-   . `dirname $BASH_SOURCE`/scripts/poky-env-internal
+   OEROOT="`dirname $BASH_SOURCE`"
+   OEROOT=`readlink -f "$OEROOT"`
+   export OEROOT
+   . $OEROOT/scripts/poky-env-internal
+   $OEROOT/scripts/poky-setup-builddir
+   unset OEROOT
+   [ -n "$BUILDDIR" ] && cd $BUILDDIR
 fi
 
index 1557f9ddbdc701e7f6a15feb005ac10fa83cb809..2ec07ed061ea3f07b62346b9fbb0b430f2abf267 100755 (executable)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-# scripts/ is a sub-directory of OEROOT, we use readlink to get the full path
-SCRIPTPATH=`readlink -f "$BASH_SOURCE"`
-OEROOT="`dirname $SCRIPTPATH`/../"
+# It is assumed OEROOT is already defined when this is called
+if [ -z "$OEROOT" ]; then
+    echo >&2 "Error: OEROOT is not defined!"
+    return
+fi
 
 if [ "x$BDIR" = "x" ]; then
     if [ "x$1" = "x" ]; then
@@ -36,109 +38,23 @@ else
 fi
 unset BDIR
 
-mkdir -p $BUILDDIR/conf
-if ! (test -w "$BUILDDIR"); then
-    echo >&2 "Error: Cannot write to $BUILDDIR, perhaps try sourcing with a writable path? i.e. . poky-init-build-env ~/my-build"
-    return
-fi
-
 BITBAKEDIR="$OEROOT/bitbake$BBEXTRA/"
 
-PATH="${OEROOT}/scripts:$BITBAKEDIR/bin/:$PATH"
-
-# Remove any symlinks from paths
 BITBAKEDIR=`readlink -f "$BITBAKEDIR"`
 BUILDDIR=`readlink -f "$BUILDDIR"`
-OEROOT=`readlink -f "$OEROOT"`
-
-cd "$BUILDDIR"
 
-if ! (test -d "$BITBAKEDIR" && test -d "$BUILDDIR"); then
-    echo >&2 "Error: Not all directories exist! Did you run this script in poky directory?"
+if ! (test -d "$BITBAKEDIR"); then
+    echo >&2 "Error: The bitbake directory ($BITBAKEDIR) does not exist!  Did you source the script in the poky directory?"
     return
 fi
 
-# 
-# $POKYCONF can point to a directory for the template local.conf & bblayers.conf
-#
-if [ "x" != "x$POKYCONF" ]; then
-    if ! (test -d "$POKYCONF"); then
-       # Allow POKYCONF=meta-xyz/conf as a shortcut
-       if [ -d "$OEROOT/$POKYCONF" ]; then
-           POKYCONF="$OEROOT/$POKYCONF"
-       fi
-       if ! (test -d "$POKYCONF"); then
-           echo >&2 "Error: '$POKYCONF' must be a directory containing local.conf & bblayers.conf"
-           return
-       fi
-    fi
-    POKYLAYERCONF="$POKYCONF/bblayers.conf"
-    POKYLOCALCONF="$POKYCONF/local.conf"
-fi
-
-if [ "x" = "x$POKYLOCALCONF" ]; then
-    POKYLOCALCONF="$OEROOT/meta/conf/local.conf.sample"
-fi
-if ! (test -r "$BUILDDIR/conf/local.conf"); then
-cat <<EOM
-You had no conf/local.conf file. Poky has created this configuration file for
-you with some default values. You may wish to edit it to use a different MACHINE
-(target hardware) or enable parallel build options to take advantage of multiple
-cores for example. See the file for more information as common configuration
-options are commented.
-
-Also, for more information see the Poky handbook:
-http://pokylinux.org/doc/poky-handbook.html
-
-EOM
-    cp -f $POKYLOCALCONF $BUILDDIR/conf/local.conf
-fi
-
-if [ "x" = "x$POKYLAYERCONF" ]; then
-    POKYLAYERCONF="$OEROOT/meta/conf/bblayers.conf.sample"
-fi
-if ! (test -r "$BUILDDIR/conf/bblayers.conf"); then
-cat <<EOM
-You had no conf/bblayers.conf file. Poky has created this configuration file for
-you with some default values. To add additional metadata layers into your
-configuration please add entries to this file.
-
-For more information see the Poky handbook:
-    http://pokylinux.org/doc/poky-handbook.html
-
-EOM
-
-    # Put the abosolute path to the layers in bblayers.conf so we can run
-    # bitbake without the init script after the first run
-    sed "s|##POKYBASE##|$OEROOT|g" $POKYLAYERCONF > $BUILDDIR/conf/bblayers.conf
-fi
-
-# Prevent disturbing a new GIT clone in same console
-unset POKYLOCALCONF
-unset POKYLAYERCONF
+PATH="${OEROOT}/scripts:$BITBAKEDIR/bin/:$PATH"
 unset BITBAKEDIR
-unset OEROOT
 
 # Used by the poky-qemu script
 export BUILDDIR
 export PATH
+
 # Stop multi byte characters breaking the patcher stuff - This is for Redhat / Fedora people really
 export LANG=C
 export BB_ENV_EXTRAWHITE="MACHINE DISTRO POKYMODE POKYLIBC http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS GIT_PROXY_COMMAND PSEUDO_DISABLED"
-
-cat <<EOM
-
-### Shell environment set up for Poky builds. ###
-
-You can now run 'bitbake <target>'
-
-Common targets are:
-    poky-image-minimal
-    poky-image-sato
-    meta-toolchain
-    meta-toolchain-sdk
-
-You can also run generated qemu images with a command like 'poky-qemu qemux86'
-
-EOM
-
diff --git a/scripts/poky-setup-builddir b/scripts/poky-setup-builddir
new file mode 100755 (executable)
index 0000000..7a1452f
--- /dev/null
@@ -0,0 +1,113 @@
+#!/bin/sh
+
+# Poky Build Enviroment Setup Script
+#
+# Copyright (C) 2006-2007 OpenedHand Ltd.
+#
+# 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
+
+if [ -z "$BUILDDIR" ]; then
+    echo >&2 "Error: The build directory (BUILDDIR) must be set!"
+    exit 1
+fi
+
+mkdir -p $BUILDDIR/conf
+
+if ! (test -d "$BUILDDIR"); then
+    echo >&2 "Error: The builddir ($BUILDDIR) does not exist!"
+    exit 1
+fi
+
+if ! (test -w "$BUILDDIR"); then
+    echo >&2 "Error: Cannot write to $BUILDDIR, perhaps try sourcing with a writable path? i.e. . poky-init-build-env ~/my-build"
+    exit 1
+fi
+
+cd "$BUILDDIR"
+
+# 
+# $POKYCONF can point to a directory for the template local.conf & bblayers.conf
+#
+if [ "x" != "x$POKYCONF" ]; then
+    if ! (test -d "$POKYCONF"); then
+       # Allow POKYCONF=meta-xyz/conf as a shortcut
+       if [ -d "$OEROOT/$POKYCONF" ]; then
+           POKYCONF="$OEROOT/$POKYCONF"
+       fi
+       if ! (test -d "$POKYCONF"); then
+           echo >&2 "Error: '$POKYCONF' must be a directory containing local.conf & bblayers.conf"
+           return
+       fi
+    fi
+    POKYLAYERCONF="$POKYCONF/bblayers.conf"
+    POKYLOCALCONF="$POKYCONF/local.conf"
+fi
+
+if [ "x" = "x$POKYLOCALCONF" ]; then
+    POKYLOCALCONF="$OEROOT/meta/conf/local.conf.sample"
+fi
+if ! (test -r "$BUILDDIR/conf/local.conf"); then
+cat <<EOM
+You had no conf/local.conf file. Poky has created this configuration file for
+you with some default values. You may wish to edit it to use a different MACHINE
+(target hardware) or enable parallel build options to take advantage of multiple
+cores for example. See the file for more information as common configuration
+options are commented.
+
+Also, for more information see the Poky handbook:
+http://pokylinux.org/doc/poky-handbook.html
+
+EOM
+    cp -f $POKYLOCALCONF $BUILDDIR/conf/local.conf
+fi
+
+if [ "x" = "x$POKYLAYERCONF" ]; then
+    POKYLAYERCONF="$OEROOT/meta/conf/bblayers.conf.sample"
+fi
+if ! (test -r "$BUILDDIR/conf/bblayers.conf"); then
+cat <<EOM
+You had no conf/bblayers.conf file. Poky has created this configuration file for
+you with some default values. To add additional metadata layers into your
+configuration please add entries to this file.
+
+For more information see the Poky handbook:
+    http://pokylinux.org/doc/poky-handbook.html
+
+EOM
+
+    # Put the abosolute path to the layers in bblayers.conf so we can run
+    # bitbake without the init script after the first run
+    sed "s|##POKYBASE##|$OEROOT|g" $POKYLAYERCONF > $BUILDDIR/conf/bblayers.conf
+fi
+
+# Prevent disturbing a new GIT clone in same console
+unset POKYLOCALCONF
+unset POKYLAYERCONF
+
+cat <<EOM
+
+### Shell environment set up for Poky builds. ###
+
+You can now run 'bitbake <target>'
+
+Common targets are:
+    poky-image-minimal
+    poky-image-sato
+    meta-toolchain
+    meta-toolchain-sdk
+
+You can also run generated qemu images with a command like 'poky-qemu qemux86'
+
+EOM