Files
poky/scripts/oe-setup-builddir
Gary Thomas 29ea5ad86c Need override for TEMPLATECONF
The recently upgraded scripts used to setup the build environment
have made it so that a distribution/layer can no longer provide
the build templates.  This patch restores that possibility.

Note: my patch that created this functionality allowed for the
distribution/layers to provide XXX/conf/local.conf as well as
XXX/conf/local.conf.sample  Any comments on why that was removed?

Thanks

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

>From e3370ac5f4e902dd517cb196cfe416c96d309210 Mon Sep 17 00:00:00 2001
From: Gary Thomas <gary@mlbassoc.com>
Date: Mon, 25 Apr 2011 13:43:39 -0600
Subject: [PATCH] oe-setup-builddir: Allow template directory to be overridden

Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2011-05-03 12:12:16 +01:00

125 lines
3.8 KiB
Bash
Executable File

#!/bin/sh
# OE Build Enviroment Setup Script
#
# Copyright (C) 2006-2011 Linux Foundation
#
# 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. . oe-init-build-env ~/my-build"
exit 1
fi
cd "$BUILDDIR"
TEMPLATECONF=${TEMPLATECONF:-meta-yocto/conf}
#
# $TEMPLATECONF can point to a directory for the template local.conf & bblayers.conf
#
if [ "x" != "x$TEMPLATECONF" ]; then
if ! (test -d "$TEMPLATECONF"); then
# Allow TEMPLATECONF=meta-xyz/conf as a shortcut
if [ -d "$OEROOT/$TEMPLATECONF" ]; then
TEMPLATECONF="$OEROOT/$TEMPLATECONF"
fi
if ! (test -d "$TEMPLATECONF"); then
echo >&2 "Error: '$TEMPLATECONF' must be a directory containing local.conf & bblayers.conf"
return
fi
fi
OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample"
OECORELOCALCONF="$TEMPLATECONF/local.conf.sample"
fi
if [ "x" = "x$OECORELOCALCONF" ]; then
OECORELOCALCONF="$OEROOT/meta/conf/local.conf.sample"
fi
if ! (test -r "$BUILDDIR/conf/local.conf"); then
cat <<EOM
You had no conf/local.conf file. This configuration file has therefore beend
created 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.
The Yocto Project has extensive documentation about OE including a reference manual
which can be found at:
http://yoctoproject.org/community/documentation
For more information about OpenEmbedded see their website:
http://www.openembedded.org/
EOM
cp -f $OECORELOCALCONF $BUILDDIR/conf/local.conf
fi
if [ "x" = "x$OECORELAYERCONF" ]; then
OECORELAYERCONF="$OEROOT/meta/conf/bblayers.conf.sample"
fi
if ! (test -r "$BUILDDIR/conf/bblayers.conf"); then
cat <<EOM
You had no conf/bblayers.conf file. The configuration file has been created for
you with some default values. To add additional metadata layers into your
configuration please add entries to this file.
The Yocto Project has extensive documentation about OE including a reference manual
which can be found at:
http://yoctoproject.org/community/documentation
For more information about OpenEmbedded see their website:
http://www.openembedded.org/
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|##COREBASE##|$OEROOT|g" $OECORELAYERCONF > $BUILDDIR/conf/bblayers.conf
fi
# Prevent disturbing a new GIT clone in same console
unset OECORELOCALCONF
unset OECORELAYERCONF
cat <<EOM
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-toolchain-sdk
You can also run generated qemu images with a command like 'runqemu qemux86'
EOM