shijie.xiong | bc5d367 | 2022-04-01 17:52:16 +0800 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved. |
| 4 | # |
| 5 | # SPDX-License-Identifier: MIT |
| 6 | # |
| 7 | |
| 8 | ############################################################### |
| 9 | # Function: choose board and product, set environment variables. |
| 10 | ############################################################### |
| 11 | |
| 12 | usage() { |
| 13 | echo "Usage: source $BASH_SOURCE [arch_name] [soc_name] [board_name] [product_name]" |
| 14 | echo "−h: display help." |
| 15 | echo "" |
| 16 | } |
| 17 | |
| 18 | version_lt() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" != "$1"; } |
| 19 | |
| 20 | CMAKE_FILE=$(which cmake) |
| 21 | if [ -x /opt/cmake-3.18.4-Linux-x86_64/bin/cmake ]; then |
| 22 | export PATH=/opt/cmake-3.18.4-Linux-x86_64/bin/:$PATH |
| 23 | elif [ -n "$CMAKE_FILE" ]; then |
| 24 | CMAKE_VERSION=$(cmake --version) |
| 25 | pattern="cmake version " |
| 26 | CMAKE_VERSION=$(echo ${CMAKE_VERSION#*${pattern}}) |
| 27 | pattern=" CMake" |
| 28 | CMAKE_VERSION=$(echo ${CMAKE_VERSION%${pattern}*}) |
| 29 | if version_lt $CMAKE_VERSION "3.13.1"; then |
| 30 | echo "cmake version $CMAKE_VERSION < 3.13.1!" |
| 31 | echo "Please upgrade cmake!" |
| 32 | return 0 |
| 33 | fi |
| 34 | else |
| 35 | echo "cmake not found!" |
| 36 | echo "Please install cmake!" |
| 37 | return 0 |
| 38 | fi |
| 39 | |
| 40 | NINJA_FILE=$(which ninja) |
| 41 | if [ -z "$NINJA_FILE" ]; then |
| 42 | echo "ninja not found!" |
| 43 | echo "Please install ninja!" |
| 44 | return 0 |
| 45 | fi |
| 46 | |
| 47 | source scripts/gen_package_combination.sh |
| 48 | |
| 49 | if [ -n "$1" ] && [ $1 == "-h" ]; then |
| 50 | usage |
| 51 | return 0 |
| 52 | elif [ $# -eq 2 ] && [ $2 == "gen_all" ]; then |
| 53 | CHOICE_PACKAGE=$1 |
| 54 | echo "Choose project:$CHOICE_PACKAGE" |
| 55 | else |
| 56 | unset CHOICE_PACKAGE |
| 57 | |
| 58 | if [ -z "$CHOICE_PACKAGE" ]; then |
| 59 | echo "Available projects:" |
| 60 | #show all package combinations |
| 61 | j=0 |
| 62 | while IFS= read -r LINE; do |
| 63 | NR=$j |
| 64 | echo -e "\t$NR. ${LINE[@]}" |
| 65 | j=$((j + 1)) |
| 66 | done <$PACKAGE_COMBINATION |
| 67 | read -p "Choose your project: " CHOICE_PACKAGE |
| 68 | # Determine whether it is a digital number |
| 69 | expr $CHOICE_PACKAGE + 1 >/dev/null 2>&1 |
| 70 | if [[ $? -ne 0 ]] || [[ $CHOICE_PACKAGE -ge $j ]]; then |
| 71 | echo "Wrong choice!" |
| 72 | return 0 |
| 73 | fi |
| 74 | fi |
| 75 | fi |
| 76 | |
| 77 | KERNEL=freertos |
| 78 | |
| 79 | export KERNEL CHOICE_PACKAGE |