#!/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