blob: e4729fe83493942b5e973356247787c6e8cf2fa4 [file] [log] [blame]
Gustavo Henrique Nihei38453f62021-11-03 15:00:19 -03001#!/usr/bin/env bash
2# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
3# SPDX-License-Identifier: Apache-2.0
4
5SCRIPT_ROOTDIR=$(dirname "$(realpath "${BASH_SOURCE[0]}")")
6MCUBOOT_ROOTDIR=$(realpath "${SCRIPT_ROOTDIR}/..")
7ESPRESSIF_ROOT="${MCUBOOT_ROOTDIR}/boot/espressif"
8IDF_PATH="${ESPRESSIF_ROOT}/hal/esp-idf"
9
10set -eo pipefail
11
Gustavo Henrique Nihei67b73d32021-12-09 17:05:10 -030012prepare_environment() {
Gustavo Henrique Nihei38453f62021-11-03 15:00:19 -030013 # Prepare the environment for ESP-IDF
14
15 . "${IDF_PATH}"/export.sh
Gustavo Henrique Nihei67b73d32021-12-09 17:05:10 -030016}
17
18build_mcuboot() {
Gustavo Henrique Niheid6e98102021-12-28 14:05:52 -030019 local target=${1}
20 local feature=${2}
Almir Okatobfdf9342023-01-27 16:24:00 -030021 local img_num=${3}
Gustavo Henrique Nihei67b73d32021-12-09 17:05:10 -030022 local build_dir=".build-${target}"
Almir Okatobfdf9342023-01-27 16:24:00 -030023 local toolchain_file="${ESPRESSIF_ROOT}/tools/toolchain-${target}.cmake"
24
25 if [ -n "$img_num" ]; then
26 img_num="-${img_num}"
27 fi
28 local mcuboot_config="${ESPRESSIF_ROOT}/port/${target}/bootloader${img_num}.conf"
Gustavo Henrique Nihei67b73d32021-12-09 17:05:10 -030029
30 if [ -n "${feature}" ]; then
Almir Okatobfdf9342023-01-27 16:24:00 -030031 mcuboot_config="${mcuboot_config};${ESPRESSIF_ROOT}/ci_configs/${feature}.conf"
Gustavo Henrique Nihei67b73d32021-12-09 17:05:10 -030032 build_dir=".build-${target}-${feature}"
33 fi
Gustavo Henrique Nihei38453f62021-11-03 15:00:19 -030034
35 # Build MCUboot for selected target
36
37 cd "${MCUBOOT_ROOTDIR}" &>/dev/null
38 cmake -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" \
39 -DMCUBOOT_TARGET="${target}" \
40 -DMCUBOOT_CONFIG_FILE="${mcuboot_config}" \
41 -DIDF_PATH="${IDF_PATH}" \
42 -B "${build_dir}" \
43 "${ESPRESSIF_ROOT}"
44 cmake --build "${build_dir}"/
45}
46
Gustavo Henrique Nihei67b73d32021-12-09 17:05:10 -030047prepare_environment
48
49if [ -n "${MCUBOOT_FEATURES}" ]; then
50 IFS=','
Gustavo Henrique Niheid6e98102021-12-28 14:05:52 -030051 read -ra target_list <<< "${MCUBOOT_TARGETS}"
Almir Okatobfdf9342023-01-27 16:24:00 -030052 read img_num <<< "${MCUBOOT_IMG_NUM}"
Gustavo Henrique Niheid6e98102021-12-28 14:05:52 -030053 for target in "${target_list[@]}"; do
54 read -ra feature_list <<< "${MCUBOOT_FEATURES}"
55 for feature in "${feature_list[@]}"; do
56 echo "Building MCUboot for \"${target}\" with support for \"${feature}\""
Almir Okatobfdf9342023-01-27 16:24:00 -030057 build_mcuboot "${target}" "${feature}" "${img_num}"
Gustavo Henrique Niheid6e98102021-12-28 14:05:52 -030058 done
Gustavo Henrique Nihei67b73d32021-12-09 17:05:10 -030059 done
60fi