]> git.proxmox.com Git - mirror_qemu.git/blob - roms/edk2-build.sh
Merge remote-tracking branch 'remotes/lersek/tags/edk2-pull-2019-06-14' into staging
[mirror_qemu.git] / roms / edk2-build.sh
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
15 set -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 $@.
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
27
28 cd edk2
29
30 # Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607>.
31 export PYTHON_COMMAND=python2
32
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
40 fi
41
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"
48
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[@]}"