# Maintainer: Thomas Bächler <thomas@archlinux.org>

# Release edk2-stable201808:
#   https://lists.01.org/pipermail/edk2-devel/2018-August/028604.html

pkgname=ovmf
pkgver=201808
_opensslver=1.1.0h;
pkgrel=1
pkgdesc="Tianocore UEFI firmware for qemu"
arch=('any')
url="https://www.tianocore.org/"
license=('custom')
makedepends=('acpica' 'nasm')
options=(!makeflags)
source=(https://github.com/tianocore/edk2/archive/edk2-stable${pkgver}.tar.gz
        https://www.openssl.org/source/openssl-${_opensslver}.tar.gz)
noextract=()
sha256sums=('5b7f307ac04a0cab2277ce1734946c5814fbb9b0b9ce4d23a4ee815187116a4f'
            '5835626cde9e99656585fc7aaa2302a73a7e1340bf8c14fd635a62c66802a517')
_toolchain=GCC5

prepare() {
    rmdir "${srcdir}"/edk2-edk2-stable${pkgver}/CryptoPkg/Library/OpensslLib/openssl
    ln -s "${srcdir}"/openssl-${_opensslver}\
          "${srcdir}"/edk2-edk2-stable${pkgver}/CryptoPkg/Library/OpensslLib/openssl
}

build() {
    cd "${srcdir}"/edk2-edk2-stable${pkgver}

    # REFERENCE:
    #   https://github.com/tianocore/tianocore.github.io/wiki/Testing-SMM-with-QEMU,-KVM-and-libvirt#install-ovmf-from-source

    source edksetup.sh
    make -C "$EDK_TOOLS_PATH"

    ./BaseTools/BinWrappers/PosixLike/build\
        -a IA32 -a X64 -p OvmfPkg/OvmfPkgIa32X64.dsc\
        -t ${_toolchain} -b RELEASE -n $(nproc)\
        -D NETWORK_IP6_ENABLE -D TPM2_ENABLE\
        -D HTTP_BOOT_ENABLE   -D TLS_ENABLE\
        -D SECURE_BOOT_ENABLE -D SMM_REQUIRE\
        -D FD_SIZE_2MB        -D EXCLUDE_SHELL_FROM_FD
}

package() {
    install -D -m644 "${srcdir}"/edk2-edk2-stable${pkgver}/Build/Ovmf3264/RELEASE_${_toolchain}/FV/OVMF_CODE.fd\
            "${pkgdir}"/usr/share/ovmf/3264/OVMF_CODE.fd
    install -D -m644 "${srcdir}"/edk2-edk2-stable${pkgver}/Build/Ovmf3264/RELEASE_${_toolchain}/FV/OVMF_VARS.fd\
            "${pkgdir}"/usr/share/ovmf/3264/OVMF_VARS.fd
    install -D -m644 "${srcdir}"/edk2-edk2-stable${pkgver}/OvmfPkg/License.txt\
            "${pkgdir}"/usr/share/licenses/ovmf/License.txt
}