Files
poky/scripts/poky-env-internal
Joshua Lock 971907567c Enable build dir outside of the poky directory
You need to first set up the build directory by sourcing the poky build script,
after that builds can be run in that directory so long as bitbake is in $PATH
removing the need to source the init script for each build.

i.e:
$ . poky-init-build-env ~/my-build
$ bitbake some-image
<<later, in a different shell>>
$ cd ~/my-build
$ export PATH=/path/to/bitbake/bin:$PATH
$ bitbake an-image

This patch also removes use of OEROOT in recipes, etc.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
2010-07-21 15:39:53 +01:00

4.9 KiB
Executable File

#!/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

scripts/ is a sub-directory of OEROOT, we use readlink to get the full path

SCRIPTPATH=readlink -f "$BASH_SOURCE" OEROOT="dirname $SCRIPTPATH/../"

if [ "x$BDIR" = "x" ]; then if [ "x$1" = "x" ]; then BDIR="build" else BDIR=readlink -f "$1" fi fi if ; then BUILDDIR="$BDIR" else BUILDDIR="pwd/$BDIR" 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/" PKGDIR="$OEROOT/meta/" BBPATH="$BITBAKEDIR $PKGDIR"

Add in any extra meta-* repositories to BBPATH

METAREPOS=cd $OEROOT; find . -maxdepth 1 -name 'meta-*' -type d| sed -e 's#./##g' for repo in $METAREPOS do # meta-openmoko is disabled by default - see local.conf.sample to enable it if [ $repo = "meta-openmoko" ]; then continue fi # meta-extras is disabled by default - see local.conf.sample to enable it if [ $repo = "meta-extras" ]; then continue fi if [ -e $OEROOT/$repo/poky-extra-environment ]; then . $OEROOT/$repo/poky-extra-environment fi done

BBPATH="$BBPATH $HOME/.oe $HOME/.poky $BUILDDIR"

Remove any symlinks from BBPATH

NEWPATH="" for p in $BBPATH do p2=readlink -f "$p" NEWPATH="$p2:$NEWPATH" done BBPATH="$NEWPATH"

MSG=''

BUILD_ARCH=uname -m BUILD_OS=uname | tr '[A-Z]' '[a-z]' BUILD_SYS="$BUILD_ARCH-$BUILD_OS"

PATH="$BITBAKEDIR/bin/:$OEROOT/scripts:$PATH"

Remove any symlinks from paths

BITBAKEDIR=readlink -f "$BITBAKEDIR" PKGDIR=readlink -f "$PKGDIR" BUILDDIR=readlink -f "$BUILDDIR" OEROOT=readlink -f "$OEROOT"

cd "$BUILDDIR"

if ! (test -d "$BITBAKEDIR" && test -d "$PKGDIR" && test -d "$BUILDDIR"); then echo >&2 "Error: Not all directories exist! Did you run this script in poky directory?" return fi

if [ "x" = "x$POKYLOCALCONF" ]; then POKYLOCALCONF="$OEROOT/build/conf/local.conf.sample" fi if ! (test -r "$BUILDDIR/conf/local.conf"); then echo "You had no conf/local.conf file. Poky has created this configuration file for you" echo "with some default values. You may wish to edit it to use a different MACHINE (target" echo "hardware) or enable parallel build options to take advantage of multiple cores for" echo "example. See the file for more information as common configuration options are commented." echo echo "Also, for more information see the Poky handbook: http://pokylinux.org/doc/poky-handbook.html" echo cp -f $POKYLOCALCONF $BUILDDIR/conf/local.conf fi

if [ "x" = "x$POKYLAYERCONF" ]; then POKYLAYERCONF="$OEROOT/build/conf/bblayers.conf.sample" fi if ! (test -r "$BUILDDIR/conf/bblayers.conf"); then # 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

export BBPATH BUILD_SYS BUILDDIR

Kill off the TERMINFO variable, as glibc will grab its contents in its 'make

install' if set

unset TERMINFO

kill this so we don't link non-arm libraries

unset LD_LIBRARY_PATH

Don't export TARGET_ARCH - it will cause build failures

export PATH LD_LIBRARY_PATH OEROOT

Stop multi byte characters breaking the patcher stuff - This is for Redhat / Fedora people really

export LANG=C

Kill PYTHONPATH as otherwise the Python specified there will conflict with

python-native.

unset PYTHONPATH

Don't allow custom GConf schema paths to get into the system

unset GCONF_SCHEMA_INSTALL_SOURCE

echo echo "### Shell environment set up for Poky builds. ###" echo echo "You can now run 'bitbake '" echo echo "Common targets are poky-image-minimal, poky-image-sato, meta-toolchain or meta-toolchain-sdk" echo echo "You can also run generated qemu images with a command like 'runqemu qemux86'"

export BB_ENV_EXTRAWHITE="MACHINE DISTRO POKYMODE POKYLIBC http_proxy ftp_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS"