mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

"with some default values" isn't clear; if the user wants to change or inspect the default values and their history, we should help them find where they are. This becomes especially important when using template configs other than poky's. (From OE-Core rev: b60f4c7f3205b354469c1aa8b56ceaacc11d486b) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> (cherry picked from commit ec34783ffc34eb9e9697f1b192c5a0043f1ca2c6) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
132 lines
3.8 KiB
Bash
Executable File
132 lines
3.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# OE Build Environment Setup Script
|
|
#
|
|
# Copyright (C) 2006-2011 Linux Foundation
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
#
|
|
|
|
if [ -z "$BUILDDIR" ]; then
|
|
echo >&2 "Error: The build directory (BUILDDIR) must be set!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$1" = '--help' -o "$1" = '-h' ]; then
|
|
echo 'Usage: oe-setup-builddir'
|
|
echo ''
|
|
echo "OpenEmbedded setup-builddir - setup build directory $BUILDDIR"
|
|
echo ''
|
|
exit 2
|
|
fi
|
|
|
|
mkdir -p "$BUILDDIR/conf"
|
|
|
|
if [ ! -d "$BUILDDIR" ]; then
|
|
echo >&2 "Error: The builddir ($BUILDDIR) does not exist!"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -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
|
|
|
|
# Attempting removal of sticky,setuid bits from BUILDDIR, BUILDDIR/conf
|
|
chmod -st "$BUILDDIR" 2>/dev/null || echo "WARNING: unable to chmod $BUILDDIR"
|
|
chmod -st "$BUILDDIR/conf" 2>/dev/null || echo "WARNING: unable to chmod $BUILDDIR/conf"
|
|
|
|
cd "$BUILDDIR"
|
|
|
|
if [ -f "$BUILDDIR/conf/templateconf.cfg" ]; then
|
|
TEMPLATECONF=$(cat "$BUILDDIR/conf/templateconf.cfg")
|
|
fi
|
|
|
|
. "$OEROOT"/.templateconf
|
|
|
|
if [ ! -f "$BUILDDIR/conf/templateconf.cfg" ]; then
|
|
echo "$TEMPLATECONF" >"$BUILDDIR/conf/templateconf.cfg"
|
|
fi
|
|
|
|
#
|
|
# $TEMPLATECONF can point to a directory for the template local.conf & bblayers.conf
|
|
#
|
|
if [ -n "$TEMPLATECONF" ]; then
|
|
if [ ! -d "$TEMPLATECONF" ]; then
|
|
# Allow TEMPLATECONF=meta-xyz/conf as a shortcut
|
|
if [ -d "$OEROOT/$TEMPLATECONF" ]; then
|
|
TEMPLATECONF="$OEROOT/$TEMPLATECONF"
|
|
fi
|
|
if [ ! -d "$TEMPLATECONF" ]; then
|
|
echo >&2 "Error: TEMPLATECONF value points to nonexistent directory '$TEMPLATECONF'"
|
|
exit 1
|
|
fi
|
|
fi
|
|
OECORELAYERCONF="$TEMPLATECONF/bblayers.conf.sample"
|
|
OECORELOCALCONF="$TEMPLATECONF/local.conf.sample"
|
|
OECORENOTESCONF="$TEMPLATECONF/conf-notes.txt"
|
|
fi
|
|
|
|
unset SHOWYPDOC
|
|
if [ -z "$OECORELOCALCONF" ]; then
|
|
OECORELOCALCONF="$OEROOT/meta/conf/local.conf.sample"
|
|
fi
|
|
if [ ! -r "$BUILDDIR/conf/local.conf" ]; then
|
|
cat <<EOM
|
|
You had no conf/local.conf file. This configuration file has therefore been
|
|
created for you from $OECORELOCALCONF
|
|
You may wish to edit it to, for example, select a different MACHINE (target
|
|
hardware). See conf/local.conf for more information as common configuration
|
|
options are commented.
|
|
|
|
EOM
|
|
cp -f "$OECORELOCALCONF" "$BUILDDIR/conf/local.conf"
|
|
SHOWYPDOC=yes
|
|
fi
|
|
|
|
if [ -z "$OECORELAYERCONF" ]; then
|
|
OECORELAYERCONF="$OEROOT/meta/conf/bblayers.conf.sample"
|
|
fi
|
|
if [ ! -r "$BUILDDIR/conf/bblayers.conf" ]; then
|
|
cat <<EOM
|
|
You had no conf/bblayers.conf file. This configuration file has therefore been
|
|
created for you from $OECORELAYERCONF
|
|
To add additional metadata layers into your configuration please add entries
|
|
to conf/bblayers.conf.
|
|
|
|
EOM
|
|
|
|
# Put the absolute path to the layers in bblayers.conf so we can run
|
|
# bitbake without the init script after the first run.
|
|
# ##COREBASE## is deprecated as its meaning was inconsistent, but continue
|
|
# to replace it for compatibility.
|
|
sed -e "s|##OEROOT##|$OEROOT|g" \
|
|
-e "s|##COREBASE##|$OEROOT|g" \
|
|
"$OECORELAYERCONF" > "$BUILDDIR/conf/bblayers.conf"
|
|
SHOWYPDOC=yes
|
|
fi
|
|
|
|
# Prevent disturbing a new GIT clone in same console
|
|
unset OECORELOCALCONF
|
|
unset OECORELAYERCONF
|
|
|
|
# Ending the first-time run message. Show the YP Documentation banner.
|
|
if [ ! -z "$SHOWYPDOC" ]; then
|
|
cat <<EOM
|
|
The Yocto Project has extensive documentation about OE including a reference
|
|
manual which can be found at:
|
|
https://docs.yoctoproject.org
|
|
|
|
For more information about OpenEmbedded see the website:
|
|
https://www.openembedded.org/
|
|
|
|
EOM
|
|
# unset SHOWYPDOC
|
|
fi
|
|
|
|
if [ -z "$OECORENOTESCONF" ]; then
|
|
OECORENOTESCONF="$OEROOT/meta/conf/conf-notes.txt"
|
|
fi
|
|
[ ! -r "$OECORENOTESCONF" ] || cat "$OECORENOTESCONF"
|
|
unset OECORENOTESCONF
|