From 1761de60f0468d93a0f218f021e6e0e309ba0007 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Fri, 1 Sep 2017 15:48:52 +0200 Subject: Add Makefile, add build rules for edk2 Based on roms/Makefile in qemu repo. Paths have been adapted to qemu-firmware repo layout. "make install" target has been added. "make help" text is more verbose. edk2 build rules and helper script added. Signed-off-by: Gerd Hoffmann --- scripts/compile-edk2.sh | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 scripts/compile-edk2.sh (limited to 'scripts/compile-edk2.sh') diff --git a/scripts/compile-edk2.sh b/scripts/compile-edk2.sh new file mode 100755 index 0000000..d940381 --- /dev/null +++ b/scripts/compile-edk2.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +# args +arch="$1" +cross="$2" + +# figure gcc version, set cross build prefix vars +gccver=$(${cross}gcc --version \ + | awk '{ print $3; exit}' \ + | cut -d. -f1,2 \ + | tr -d ".") +case "$gccver" in +4*) # nothing, keep "4x" + ;; +5* | 6* | 7*) + gccver=5 + ;; +esac +toolchain="GCC$gccver" + +eval "export GCC${gccver}_IA32_PREFIX=${cross}" +eval "export GCC${gccver}_X64_PREFIX=${cross}" +eval "export GCC${gccver}_ARM_PREFIX=${cross}" +eval "export GCC${gccver}_AARCH64_PREFIX=${cross}" + +# what we are going to build? +case "$arch" in +i386) + efiarch="IA32" + project="OvmfPkg/OvmfPkgIa32.dsc" + match="OvmfIa32/*/FV/OVMF*.fd" + ;; +x86_64) + efiarch="X64" + project="OvmfPkg/OvmfPkgX64.dsc" + match="OvmfX64/*/FV/OVMF*.fd" + ;; +arm | aarch64) + efiarch="$(echo $arch | tr 'a-z' 'A-Z')" + project="ArmVirtPkg/ArmVirtQemu.dsc" + match="ArmVirtQemu-${efiarch}/*/FV/QEMU_*.fd" + ;; +esac + +# setup edk2 build environment +cd repos/edk2 +source ./edksetup.sh --reconfig +bopts="" +bopts="$bopts -t $toolchain" +bopts="$bopts -D HTTP_BOOT_ENABLE" +bopts="$bopts -a $efiarch" +bopts="$bopts -p $project" + +# go build everything +make -C BaseTools || exit 1 +build $bopts || exit 1 + +# copy over results +dest="../../blobs/edk2-${arch}" +mkdir -p "$dest" +cp -v Build/${match} "$dest" -- cgit