#!/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 [[ "$BDIR" = /* ]] ; 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 < $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 <' 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