Dean Birch | 62c4f08 | 2020-01-17 16:13:26 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | #------------------------------------------------------------------------------- |
Xinyu Zhang | ff5d771 | 2022-01-14 13:48:59 +0800 | [diff] [blame] | 3 | # Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved. |
Dean Birch | 62c4f08 | 2020-01-17 16:13:26 +0000 | [diff] [blame] | 4 | # |
| 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 | |
| 16 | set -ex |
Dean Birch | d0f9f8c | 2020-03-26 11:10:33 +0000 | [diff] [blame] | 17 | |
| 18 | if [ -z "$CONFIG_NAME" ] ; then |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 19 | echo "Set CONFIG_NAME to run a build." |
| 20 | exit 1 |
Dean Birch | d0f9f8c | 2020-03-26 11:10:33 +0000 | [diff] [blame] | 21 | fi |
| 22 | |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 23 | set_compiler_cmd=$(python3 tf-m-ci-scripts/configs.py -b set_compiler $CONFIG_NAME) |
| 24 | cmake_config_cmd=$(python3 tf-m-ci-scripts/configs.py -b cmake_config $CONFIG_NAME) |
| 25 | cmake_build_cmd=$(python3 tf-m-ci-scripts/configs.py -b cmake_build -j ${BUILD_JOBS:-2} $CONFIG_NAME) |
| 26 | post_build_cmd=$(python3 tf-m-ci-scripts/configs.py -b post_build $CONFIG_NAME) |
| 27 | |
Karl Zhang | 4a45dac | 2020-06-10 14:03:10 +0800 | [diff] [blame] | 28 | set +e |
| 29 | echo "output current build environment" |
| 30 | cat /etc/issue |
| 31 | uname -a |
| 32 | grep -c ^processor /proc/cpuinfo |
Karl Zhang | 4a45dac | 2020-06-10 14:03:10 +0800 | [diff] [blame] | 33 | cmake --version |
| 34 | python --version |
| 35 | make --version |
| 36 | |
| 37 | set -ex |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 38 | eval $set_compiler_cmd |
Dean Birch | d0f9f8c | 2020-03-26 11:10:33 +0000 | [diff] [blame] | 39 | |
Paul Sokolovsky | 99078c1 | 2023-04-10 22:59:28 +0300 | [diff] [blame] | 40 | if [ -n "$BUILD_TARGET" ]; then |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 41 | cmake_build_cmd=$(echo "$cmake_build_cmd" | head -4) |
| 42 | cmake_build_cmd=${cmake_build_cmd/-- install/-- $BUILD_TARGET} |
Paul Sokolovsky | 99078c1 | 2023-04-10 22:59:28 +0300 | [diff] [blame] | 43 | fi |
| 44 | |
Xinyu Zhang | 433771e | 2022-04-01 16:49:17 +0800 | [diff] [blame] | 45 | if [ $CODE_COVERAGE_EN = "TRUE" ] && [[ $CONFIG_NAME =~ "GCC" ]] ; then |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 46 | cmake_config_cmd=${cmake_config_cmd/toolchain_GNUARM.cmake/toolchain_GNUARM.cmake -DTFM_CODE_COVERAGE=True} |
Karl Zhang | f6f467e | 2020-07-10 16:24:45 +0800 | [diff] [blame] | 47 | echo "Flag: Add compiler flag for build with code coverage supported." |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 48 | echo $cmake_config_cmd |
Karl Zhang | f6f467e | 2020-07-10 16:24:45 +0800 | [diff] [blame] | 49 | fi |
| 50 | |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 51 | if [ -z "$cmake_config_cmd" ] ; then |
| 52 | echo "No CMake config commands found." |
| 53 | exit 1 |
| 54 | fi |
| 55 | |
| 56 | if [ -z "$cmake_build_cmd" ] ; then |
| 57 | echo "No build image commands found." |
| 58 | exit 1 |
Dean Birch | d0f9f8c | 2020-03-26 11:10:33 +0000 | [diff] [blame] | 59 | fi |
| 60 | |
Xinyu Zhang | e0aa69c | 2021-03-13 13:33:55 +0800 | [diff] [blame] | 61 | cnt=$(ls trusted-firmware-m/lib/ext/mbedcrypto/*.patch 2> /dev/null | wc -l) |
| 62 | if [ "$cnt" != "0" ] ; then |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 63 | cd mbedtls |
| 64 | git apply ../trusted-firmware-m/lib/ext/mbedcrypto/*.patch |
| 65 | cd - |
Xinyu Zhang | e0aa69c | 2021-03-13 13:33:55 +0800 | [diff] [blame] | 66 | fi |
Xinyu Zhang | b708f57 | 2020-09-15 11:43:46 +0800 | [diff] [blame] | 67 | |
Xinyu Zhang | e0aa69c | 2021-03-13 13:33:55 +0800 | [diff] [blame] | 68 | cnt=$(ls trusted-firmware-m/lib/ext/psa_arch_tests/*.patch 2> /dev/null | wc -l) |
| 69 | if [ "$cnt" != "0" ] ; then |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 70 | cd psa-arch-tests |
| 71 | git apply ../trusted-firmware-m/lib/ext/psa_arch_tests/*.patch |
| 72 | cd - |
Xinyu Zhang | e0aa69c | 2021-03-13 13:33:55 +0800 | [diff] [blame] | 73 | fi |
| 74 | |
Xinyu Zhang | ab9d1ea | 2022-12-23 17:11:22 +0800 | [diff] [blame] | 75 | cd trusted-firmware-m |
| 76 | git apply ../tf-m-ci-scripts/build_helper/platform_settings/*.patch |
| 77 | cd - |
| 78 | |
Xinyu Zhang | e0aa69c | 2021-03-13 13:33:55 +0800 | [diff] [blame] | 79 | rm -rf trusted-firmware-m/build |
| 80 | mkdir trusted-firmware-m/build |
| 81 | cd trusted-firmware-m/build |
Dean Birch | d0f9f8c | 2020-03-26 11:10:33 +0000 | [diff] [blame] | 82 | |
Xinyu Zhang | 46b3718 | 2023-06-30 15:36:44 +0800 | [diff] [blame^] | 83 | eval "set -ex ; $cmake_config_cmd; $cmake_build_cmd; $post_build_cmd" |