]> git.proxmox.com Git - mirror_qemu.git/blob - roms/edk2-build.sh
Merge remote-tracking branch 'remotes/kraxel/tags/seabios-20220118-pull-request'...
[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 export PYTHON_COMMAND=${EDK2_PYTHON_COMMAND:-python3}
31
32 # Source "edksetup.sh" carefully.
33 set +e +u +C
34 source ./edksetup.sh
35 ret=$?
36 set -e -u -C
37 if [ $ret -ne 0 ]; then
38 exit $ret
39 fi
40
41 # Fetch some option arguments, and set the cross-compilation environment (if
42 # any), for the edk2 "build" utility.
43 source ../edk2-funcs.sh
44 edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target")
45 MAKEFLAGS=$(qemu_edk2_quirk_tianocore_1607 "$MAKEFLAGS")
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[@]}"