mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00

specifically that ../../layer.conf exists, and that second-from-last component in the path is 'templates'. This requires tweaking template.conf creation in eSDK bbclass, as we need to ensure that the path in it is valid, and exists (which may not be the case if the SDK is poky-based). (From OE-Core rev: c6f2b57be8893ee58f20cc29d8ec3a5a6edf7c07) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
137 lines
4.2 KiB
Bash
Executable File
137 lines
4.2 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
|
|
templatesdir=$(python3 -c "import sys; print(sys.argv[1].strip('/').split('/')[-2])" $TEMPLATECONF)
|
|
if [ ! -f "$TEMPLATECONF/../../layer.conf" -o $templatesdir != "templates" ]; then
|
|
echo >&2 "Error: TEMPLATECONF value (which is $TEMPLATECONF) must point to meta-some-layer/conf/templates/template-name"
|
|
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
|