edk2-build.sh (1503B)
1#!/bin/bash 2 3# Wrapper shell script for building a virtual platform firmware in edk2. 4# 5# Copyright (C) 2019 Red Hat, Inc. 6# 7# This program and the accompanying materials are licensed and made available 8# under the terms and conditions of the BSD License that accompanies this 9# distribution. The full text of the license may be found at 10# <http://opensource.org/licenses/bsd-license.php>. 11# 12# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT 13# WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 14 15set -e -u -C 16 17# Save the command line arguments. We need to reset $# to 0 before sourcing 18# "edksetup.sh", as it will inherit $@. 19emulation_target=$1 20shift 21num_args=0 22args=() 23for arg in "$@"; do 24 args[num_args++]="$arg" 25done 26shift $num_args 27 28cd edk2 29 30export PYTHON_COMMAND=${EDK2_PYTHON_COMMAND:-python3} 31 32# Source "edksetup.sh" carefully. 33set +e +u +C 34source ./edksetup.sh 35ret=$? 36set -e -u -C 37if [ $ret -ne 0 ]; then 38 exit $ret 39fi 40 41# Fetch some option arguments, and set the cross-compilation environment (if 42# any), for the edk2 "build" utility. 43source ../edk2-funcs.sh 44edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target") 45MAKEFLAGS=$(qemu_edk2_quirk_tianocore_1607 "$MAKEFLAGS") 46edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS") 47qemu_edk2_set_cross_env "$emulation_target" 48 49# Build the platform firmware. 50build \ 51 --cmd-len=65536 \ 52 -n "$edk2_thread_count" \ 53 --buildtarget=DEBUG \ 54 --tagname="$edk2_toolchain" \ 55 "${args[@]}"