#!/bin/bash # # Builds Trusted OS, mainly for ARM Trusted Firmware. # Calls $ATF_SPD-build.sh for the actual build of a specific Trusted OS. # Not intended to be called directly, invoked from uefi-build.sh. # # Board configuration is extracted from # parse-platforms.py and platforms.config. # . "$TOOLS_DIR"/common-functions function usage { echo "usage:" echo "tos-build.sh -e <EDK2 source directory> -t <UEFI build profile/toolchain> <platform>" echo } function build_platform { if [ X"$EDK2_DIR" = X"" ];then echo "EDK2_DIR not set!" >&2 return 1 fi if [ X"`$TOOLS_DIR/parse-platforms.py $PLATFORM_CONFIG -p $1 get -o build_tos`" = X"" ]; then echo "Platform '$1' is not configured to build Trusted OS." return 0 fi # # Build Trusted OS # ATF_SPD="`$TOOLS_DIR/parse-platforms.py $PLATFORM_CONFIG -p $1 get -o atf_spd`" if [ -f $TOOLS_DIR/$ATF_SPD-build.sh ]; then echo "Building $ATF_SPD Trusted OS" if [ $VERBOSE -eq 1 ]; then echo "$TOOLS_DIR/$ATF_SPD-build.sh -e "$EDK2_DIR" -t "$BUILD_PROFILE" $build" fi $TOOLS_DIR/$ATF_SPD-build.sh -e "$EDK2_DIR" -t "$BUILD_PROFILE" $build return $? else echo "ERROR: missing Trusted OS build script." echo " Or build script not named $ATF_SPD-build.sh" return 1 fi } build= if [ $# = 0 ] then usage exit 1 else while [ "$1" != "" ]; do case $1 in "-e" ) shift EDK2_DIR="$1" ;; "/h" | "/?" | "-?" | "-h" | "--help" ) usage exit ;; "-t" ) shift BUILD_PROFILE="$1" ;; * ) build="$1" ;; esac shift done fi if [ X"$build" = X"" ]; then echo "No platform specified!" >&2 echo usage exit 1 fi build_platform $build exit $?