]> git.proxmox.com Git - mirror_qemu.git/blame - 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
CommitLineData
536d2173
LE
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
30# Work around <https://bugzilla.tianocore.org/show_bug.cgi?id=1607>.
31export PYTHON_COMMAND=python2
32
33# Source "edksetup.sh" carefully.
34set +e +u +C
35source ./edksetup.sh
36ret=$?
37set -e -u -C
38if [ $ret -ne 0 ]; then
39 exit $ret
40fi
41
42# Fetch some option arguments, and set the cross-compilation environment (if
43# any), for the edk2 "build" utility.
44source ../edk2-funcs.sh
45edk2_toolchain=$(qemu_edk2_get_toolchain "$emulation_target")
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[@]}"