Gustavo Henrique Nihei | 38453f6 | 2021-11-03 15:00:19 -0300 | [diff] [blame] | 1 | #!/usr/bin/env bash |
| 2 | # SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD |
| 3 | # SPDX-License-Identifier: Apache-2.0 |
| 4 | |
| 5 | SCRIPT_ROOTDIR=$(dirname "$(realpath "${BASH_SOURCE[0]}")") |
| 6 | MCUBOOT_ROOTDIR=$(realpath "${SCRIPT_ROOTDIR}/..") |
| 7 | ESPRESSIF_ROOT="${MCUBOOT_ROOTDIR}/boot/espressif" |
| 8 | IDF_PATH="${ESPRESSIF_ROOT}/hal/esp-idf" |
| 9 | |
| 10 | set -eo pipefail |
| 11 | |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 12 | prepare_environment() { |
Gustavo Henrique Nihei | 38453f6 | 2021-11-03 15:00:19 -0300 | [diff] [blame] | 13 | # Prepare the environment for ESP-IDF |
| 14 | |
| 15 | . "${IDF_PATH}"/export.sh |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 16 | } |
| 17 | |
| 18 | build_mcuboot() { |
Gustavo Henrique Nihei | d6e9810 | 2021-12-28 14:05:52 -0300 | [diff] [blame^] | 19 | local target=${1} |
| 20 | local feature=${2} |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 21 | local toolchain_file="${ESPRESSIF_ROOT}/tools/toolchain-${target}.cmake" |
| 22 | local mcuboot_config="${ESPRESSIF_ROOT}/bootloader.conf" |
| 23 | local build_dir=".build-${target}" |
| 24 | |
| 25 | if [ -n "${feature}" ]; then |
| 26 | mcuboot_config="${ESPRESSIF_ROOT}/secureboot-${feature}.conf" |
| 27 | build_dir=".build-${target}-${feature}" |
| 28 | fi |
Gustavo Henrique Nihei | 38453f6 | 2021-11-03 15:00:19 -0300 | [diff] [blame] | 29 | |
| 30 | # Build MCUboot for selected target |
| 31 | |
| 32 | cd "${MCUBOOT_ROOTDIR}" &>/dev/null |
| 33 | cmake -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" \ |
| 34 | -DMCUBOOT_TARGET="${target}" \ |
| 35 | -DMCUBOOT_CONFIG_FILE="${mcuboot_config}" \ |
| 36 | -DIDF_PATH="${IDF_PATH}" \ |
| 37 | -B "${build_dir}" \ |
| 38 | "${ESPRESSIF_ROOT}" |
| 39 | cmake --build "${build_dir}"/ |
| 40 | } |
| 41 | |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 42 | prepare_environment |
| 43 | |
| 44 | if [ -n "${MCUBOOT_FEATURES}" ]; then |
| 45 | IFS=',' |
Gustavo Henrique Nihei | d6e9810 | 2021-12-28 14:05:52 -0300 | [diff] [blame^] | 46 | read -ra target_list <<< "${MCUBOOT_TARGETS}" |
| 47 | for target in "${target_list[@]}"; do |
| 48 | read -ra feature_list <<< "${MCUBOOT_FEATURES}" |
| 49 | for feature in "${feature_list[@]}"; do |
| 50 | echo "Building MCUboot for \"${target}\" with support for \"${feature}\"" |
| 51 | build_mcuboot "${target}" "${feature}" |
| 52 | done |
Gustavo Henrique Nihei | 67b73d3 | 2021-12-09 17:05:10 -0300 | [diff] [blame] | 53 | done |
| 54 | fi |