mirror of
https://github.com/nxp-imx/meta-imx.git
synced 2025-07-19 10:29:02 +02:00

Update the setup script to align with EULA.txt renaming. Signed-off-by: Jun Zhu <junzhu@nxp.com>
207 lines
6.1 KiB
Bash
Executable File
207 lines
6.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# i.MX Yocto Project Build Environment Setup Script
|
|
#
|
|
# Copyright (C) 2011-2016 Freescale Semiconductor
|
|
# Copyright 2017 NXP
|
|
#
|
|
# 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
. sources/meta-imx/tools/setup-utils.sh
|
|
|
|
CWD=`pwd`
|
|
PROGNAME="setup-environment"
|
|
exit_message ()
|
|
{
|
|
echo "To return to this build environment later please run:"
|
|
echo " source setup-environment <build_dir>"
|
|
|
|
}
|
|
|
|
usage()
|
|
{
|
|
echo -e "\nUsage: source imx-setup-release.sh
|
|
Optional parameters: [-b build-dir] [-h]"
|
|
echo "
|
|
* [-b build-dir]: Build directory, if unspecified script uses 'build' as output directory
|
|
* [-h]: help
|
|
"
|
|
}
|
|
|
|
|
|
clean_up()
|
|
{
|
|
|
|
unset CWD BUILD_DIR FSLDISTRO
|
|
unset fsl_setup_help fsl_setup_error fsl_setup_flag
|
|
unset usage clean_up
|
|
unset ARM_DIR META_FSL_BSP_RELEASE
|
|
exit_message clean_up
|
|
}
|
|
|
|
# get command line options
|
|
OLD_OPTIND=$OPTIND
|
|
unset FSLDISTRO
|
|
|
|
while getopts "k:r:t:b:e:gh" fsl_setup_flag
|
|
do
|
|
case $fsl_setup_flag in
|
|
b) BUILD_DIR="$OPTARG";
|
|
echo -e "\n Build directory is " $BUILD_DIR
|
|
;;
|
|
h) fsl_setup_help='true';
|
|
;;
|
|
\?) fsl_setup_error='true';
|
|
;;
|
|
esac
|
|
done
|
|
shift $((OPTIND-1))
|
|
if [ $# -ne 0 ]; then
|
|
fsl_setup_error=true
|
|
echo -e "Invalid command line ending: '$@'"
|
|
fi
|
|
OPTIND=$OLD_OPTIND
|
|
if test $fsl_setup_help; then
|
|
usage && clean_up && return 1
|
|
elif test $fsl_setup_error; then
|
|
clean_up && return 1
|
|
fi
|
|
|
|
|
|
if [ -z "$DISTRO" ]; then
|
|
if [ -z "$FSLDISTRO" ]; then
|
|
FSLDISTRO='fsl-imx-xwayland'
|
|
fi
|
|
else
|
|
FSLDISTRO="$DISTRO"
|
|
fi
|
|
|
|
if [ -z "$BUILD_DIR" ]; then
|
|
BUILD_DIR='build'
|
|
fi
|
|
|
|
if [ -z "$MACHINE" ]; then
|
|
echo setting to default machine
|
|
MACHINE='imx6qpsabresd'
|
|
fi
|
|
|
|
case $MACHINE in
|
|
imx8*)
|
|
case $DISTRO in
|
|
*wayland)
|
|
: ok
|
|
;;
|
|
*)
|
|
echo -e "\n ERROR - Only Wayland distros are supported for i.MX 8 or i.MX 8M"
|
|
echo -e "\n"
|
|
return 1
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
: ok
|
|
;;
|
|
esac
|
|
|
|
# Cleanup previous meta-freescale/EULA overrides
|
|
cd $CWD/sources/meta-freescale
|
|
if [ -h EULA ]; then
|
|
echo Cleanup meta-freescale/EULA...
|
|
git checkout -- EULA
|
|
fi
|
|
if [ ! -f classes/fsl-eula-unpack.bbclass ]; then
|
|
echo Cleanup meta-freescale/classes/fsl-eula-unpack.bbclass...
|
|
git checkout -- classes/fsl-eula-unpack.bbclass
|
|
fi
|
|
cd -
|
|
|
|
# Override the click-through in meta-freescale
|
|
FSL_EULA_FILE=$CWD/sources/meta-imx/LICENSE.txt
|
|
|
|
|
|
# Set up the basic yocto environment
|
|
if [ -z "$DISTRO" ]; then
|
|
DISTRO=$FSLDISTRO MACHINE=$MACHINE . ./$PROGNAME $BUILD_DIR
|
|
else
|
|
MACHINE=$MACHINE . ./$PROGNAME $BUILD_DIR
|
|
fi
|
|
|
|
# Point to the current directory since the last command changed the directory to $BUILD_DIR
|
|
BUILD_DIR=.
|
|
|
|
if [ ! -e $BUILD_DIR/conf/local.conf ]; then
|
|
echo -e "\n ERROR - No build directory is set yet. Run the 'setup-environment' script before running this script to create " $BUILD_DIR
|
|
echo -e "\n"
|
|
return 1
|
|
fi
|
|
|
|
# On the first script run, backup the local.conf file
|
|
# Consecutive runs, it restores the backup and changes are appended on this one.
|
|
if [ ! -e $BUILD_DIR/conf/local.conf.org ]; then
|
|
cp $BUILD_DIR/conf/local.conf $BUILD_DIR/conf/local.conf.org
|
|
else
|
|
cp $BUILD_DIR/conf/local.conf.org $BUILD_DIR/conf/local.conf
|
|
fi
|
|
|
|
echo >> conf/local.conf
|
|
echo "# Switch to Debian packaging and include package-management in the image" >> conf/local.conf
|
|
echo "PACKAGE_CLASSES = \"package_deb\"" >> conf/local.conf
|
|
echo "EXTRA_IMAGE_FEATURES += \"package-management\"" >> conf/local.conf
|
|
|
|
if [ ! -e $BUILD_DIR/conf/bblayers.conf.org ]; then
|
|
cp $BUILD_DIR/conf/bblayers.conf $BUILD_DIR/conf/bblayers.conf.org
|
|
else
|
|
cp $BUILD_DIR/conf/bblayers.conf.org $BUILD_DIR/conf/bblayers.conf
|
|
fi
|
|
|
|
|
|
META_FSL_BSP_RELEASE="${CWD}/sources/meta-imx/meta-bsp"
|
|
|
|
echo "" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "# i.MX Yocto Project Release layers" >> $BUILD_DIR/conf/bblayers.conf
|
|
hook_in_layer meta-imx/meta-bsp
|
|
hook_in_layer meta-imx/meta-sdk
|
|
hook_in_layer meta-imx/meta-ml
|
|
hook_in_layer meta-imx/meta-v2x
|
|
hook_in_layer meta-nxp-demo-experience
|
|
|
|
echo "" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-arm/meta-arm\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-arm/meta-arm-toolchain\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-browser/meta-chromium\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-clang\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-openembedded/meta-gnome\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-openembedded/meta-networking\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-openembedded/meta-filesystems\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-qt6\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-security/meta-parsec\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-security/meta-tpm\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
echo "BBLAYERS += \"\${BSPDIR}/sources/meta-virtualization\"" >> $BUILD_DIR/conf/bblayers.conf
|
|
|
|
echo BSPDIR=$BSPDIR
|
|
echo BUILD_DIR=$BUILD_DIR
|
|
|
|
# Support integrating community meta-freescale instead of meta-fsl-arm
|
|
if [ -d ../sources/meta-freescale ]; then
|
|
echo meta-freescale directory found
|
|
# Change settings according to environment
|
|
sed -e "s,meta-fsl-arm\s,meta-freescale ,g" -i conf/bblayers.conf
|
|
sed -e "s,\$.BSPDIR./sources/meta-fsl-arm-extra\s,,g" -i conf/bblayers.conf
|
|
fi
|
|
|
|
cd $BUILD_DIR
|
|
clean_up
|
|
unset FSLDISTRO
|