Files
poky/scripts/poky-env-internal
Gary Thomas 7581654a03 poky-env-internal: Allow the environment variable POKYCONF to provide the basis for the working "conf" directory.
By using the POKYCONF variable, a meta layer can provide the basic setup for files to
be used during a build.  This is similar to the default values stored in the main meta
tree, .../meta/conf/local.conf.sample, etc

Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
2010-12-09 14:44:13 +00:00

4.3 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/"

PATH="$BITBAKEDIR/bin/:$OEROOT/scripts:$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?" 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 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"

cat <<EOM

Shell environment set up for Poky builds.

You can now run 'bitbake '

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