Files
BPI-CM9-Linux/aml-comp/uboot/bl30/rtos_sdk/scripts/prepare_toolchain.sh
T

54 lines
1.5 KiB
Bash
Raw Normal View History

2026-08-13 11:28:40 +08:00
#!/bin/bash
#
# Copyright (c) 2021-2024 Amlogic, Inc. All rights reserved.
#
# SPDX-License-Identifier: MIT
#
[ -z "$OUTPUT_DIR" ] && OUTPUT_DIR=$PWD/output
[ -z "$TOOLCHAIN_DIR" ] && TOOLCHAIN_DIR=$OUTPUT_DIR/toolchains/$COMPILER-$TOOLCHAIN_KEYWORD
CROSSTOOL=$PWD/arch/$ARCH/toolchain/$COMPILER*$TOOLCHAIN_KEYWORD
if [ -n "$COMPILER" ]; then
if [[ "$ARCH" == "arm" || "$ARCH" == "arm64" ]]; then
if [ ! -d $TOOLCHAIN_DIR ]; then
echo "Extracting cross toolchain ..."
mkdir -p $TOOLCHAIN_DIR
tar -xf $CROSSTOOL.tar.xz -C $TOOLCHAIN_DIR --strip-components=1
ret=$?
if [ $ret -ne 0 ]; then
echo "result:failed and remove $TOOLCHAIN_DIR"
rm -rf $TOOLCHAIN_DIR
exit 1
else
echo "result:successed"
touch $TOOLCHAIN_DIR
fi
fi
if ( find $CROSSTOOL.tar.xz -newer $TOOLCHAIN_DIR | grep -q $CROSSTOOL.tar.xz ); then
echo "Updating cross toolchain ..."
rm -rf $TOOLCHAIN_DIR && mkdir -p $TOOLCHAIN_DIR
tar -xf $CROSSTOOL.tar.xz -C $TOOLCHAIN_DIR --strip-components=1
ret=$?
if [ $ret -ne 0 ]; then
echo "result:failed and remove $TOOLCHAIN_DIR"
rm -rf $TOOLCHAIN_DIR
exit 1
else
echo "result:successed"
touch $TOOLCHAIN_DIR
fi
fi
if [ -f $CROSSTOOL.patch ]; then
cd $OUTPUT_DIR/toolchains
if patch -N -f -s --dry-run -p0 < $CROSSTOOL.patch >/dev/null; then
echo "Preparing cross toolchain ..."
patch -s -p0 < $CROSSTOOL.patch
fi
fi
fi
else
echo "COMPILER is not set, Please execute source scripts/env.sh"
exit 1
fi