Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190726' into...
[qemu/ar7.git] / roms / edk2-build.sh
blob4f46f8a6a217e4e0eefd0878883d2271bb11bc6c
1 #!/bin/bash
3 # Wrapper shell script for building a virtual platform firmware in edk2.
5 # Copyright (C) 2019 Red Hat, Inc.
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>.
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.
15 set -e -u -C
17 # Save the command line arguments. We need to reset $# to 0 before sourcing
18 # "edksetup.sh", as it will inherit $@.
19 emulation_target=$1
20 shift
21 num_args=0
22 args=()
23 for arg in "$@"; do
24 args[num_args++]="$arg"
25 done
26 shift $num_args
28 cd edk2
30 # Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607>.
31 export PYTHON_COMMAND=python2
33 # Source "edksetup.sh" carefully.
34 set +e +u +C
35 source ./edksetup.sh
36 ret=$?
37 set -e -u -C
38 if [ $ret -ne 0 ]; then
39 exit $ret
42 # Fetch some option arguments, and set the cross-compilation environment (if
43 # any), for the edk2 "build" utility.
44 source ../edk2-funcs.sh
45 edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target")
46 edk2_thread_count=$(qemu_edk2_get_thread_count "$MAKEFLAGS")
47 qemu_edk2_set_cross_env "$emulation_target"
49 # Build the platform firmware.
50 build \
51 --cmd-len=65536 \
52 -n "$edk2_thread_count" \
53 --buildtarget=DEBUG \
54 --tagname="$edk2_toolchain" \
55 "${args[@]}"