blob: f11470200f6ad0e70cf8156181545e2e5c015da1 [file] [log] [blame]
Dean Birch62c4f082020-01-17 16:13:26 +00001#!/bin/bash
2#-------------------------------------------------------------------------------
Xinyu Zhangff5d7712022-01-14 13:48:59 +08003# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
Dean Birch62c4f082020-01-17 16:13:26 +00004#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7#-------------------------------------------------------------------------------
8
9#
10# Builds a single configuration on Trusted Firmware M.
11# Relies on environment variables pre-populated.
12# These variables can be obtained using configs.py.
13# Expected to have trusted-firmware-m cloned to same level as this git tree
14#
15
16set -ex
Dean Birchd0f9f8c2020-03-26 11:10:33 +000017
18if [ -z "$CONFIG_NAME" ] ; then
Xinyu Zhang46b37182023-06-30 15:36:44 +080019 echo "Set CONFIG_NAME to run a build."
20 exit 1
Dean Birchd0f9f8c2020-03-26 11:10:33 +000021fi
22
Xinyu Zhang46b37182023-06-30 15:36:44 +080023set_compiler_cmd=$(python3 tf-m-ci-scripts/configs.py -b set_compiler $CONFIG_NAME)
24cmake_config_cmd=$(python3 tf-m-ci-scripts/configs.py -b cmake_config $CONFIG_NAME)
25cmake_build_cmd=$(python3 tf-m-ci-scripts/configs.py -b cmake_build -j ${BUILD_JOBS:-2} $CONFIG_NAME)
26post_build_cmd=$(python3 tf-m-ci-scripts/configs.py -b post_build $CONFIG_NAME)
27
Karl Zhang4a45dac2020-06-10 14:03:10 +080028set +e
29echo "output current build environment"
30cat /etc/issue
31uname -a
32grep -c ^processor /proc/cpuinfo
Karl Zhang4a45dac2020-06-10 14:03:10 +080033cmake --version
34python --version
35make --version
36
37set -ex
Xinyu Zhang46b37182023-06-30 15:36:44 +080038eval $set_compiler_cmd
Dean Birchd0f9f8c2020-03-26 11:10:33 +000039
Paul Sokolovsky99078c12023-04-10 22:59:28 +030040if [ -n "$BUILD_TARGET" ]; then
Xinyu Zhang46b37182023-06-30 15:36:44 +080041 cmake_build_cmd=$(echo "$cmake_build_cmd" | head -4)
42 cmake_build_cmd=${cmake_build_cmd/-- install/-- $BUILD_TARGET}
Paul Sokolovsky99078c12023-04-10 22:59:28 +030043fi
44
Xinyu Zhang433771e2022-04-01 16:49:17 +080045if [ $CODE_COVERAGE_EN = "TRUE" ] && [[ $CONFIG_NAME =~ "GCC" ]] ; then
Xinyu Zhang46b37182023-06-30 15:36:44 +080046 cmake_config_cmd=${cmake_config_cmd/toolchain_GNUARM.cmake/toolchain_GNUARM.cmake -DTFM_CODE_COVERAGE=True}
Karl Zhangf6f467e2020-07-10 16:24:45 +080047 echo "Flag: Add compiler flag for build with code coverage supported."
Xinyu Zhang46b37182023-06-30 15:36:44 +080048 echo $cmake_config_cmd
Karl Zhangf6f467e2020-07-10 16:24:45 +080049fi
50
Xinyu Zhang46b37182023-06-30 15:36:44 +080051if [ -z "$cmake_config_cmd" ] ; then
52 echo "No CMake config commands found."
53 exit 1
54fi
55
56if [ -z "$cmake_build_cmd" ] ; then
57 echo "No build image commands found."
58 exit 1
Dean Birchd0f9f8c2020-03-26 11:10:33 +000059fi
60
Xinyu Zhange0aa69c2021-03-13 13:33:55 +080061cnt=$(ls trusted-firmware-m/lib/ext/mbedcrypto/*.patch 2> /dev/null | wc -l)
62if [ "$cnt" != "0" ] ; then
Xinyu Zhang46b37182023-06-30 15:36:44 +080063 cd mbedtls
64 git apply ../trusted-firmware-m/lib/ext/mbedcrypto/*.patch
65 cd -
Xinyu Zhange0aa69c2021-03-13 13:33:55 +080066fi
Xinyu Zhangb708f572020-09-15 11:43:46 +080067
Xinyu Zhange0aa69c2021-03-13 13:33:55 +080068cnt=$(ls trusted-firmware-m/lib/ext/psa_arch_tests/*.patch 2> /dev/null | wc -l)
69if [ "$cnt" != "0" ] ; then
Xinyu Zhang46b37182023-06-30 15:36:44 +080070 cd psa-arch-tests
71 git apply ../trusted-firmware-m/lib/ext/psa_arch_tests/*.patch
72 cd -
Xinyu Zhange0aa69c2021-03-13 13:33:55 +080073fi
74
Xinyu Zhangab9d1ea2022-12-23 17:11:22 +080075cd trusted-firmware-m
76git apply ../tf-m-ci-scripts/build_helper/platform_settings/*.patch
77cd -
78
Xinyu Zhange0aa69c2021-03-13 13:33:55 +080079rm -rf trusted-firmware-m/build
80mkdir trusted-firmware-m/build
81cd trusted-firmware-m/build
Dean Birchd0f9f8c2020-03-26 11:10:33 +000082
Xinyu Zhang46b37182023-06-30 15:36:44 +080083eval "set -ex ; $cmake_config_cmd; $cmake_build_cmd; $post_build_cmd"