# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>

setvar pkgname = 'edk2'
setvar pkgver = '0.0.20161115'
setvar _commitid = 'e242cdfb307a6dfe2c0f75c4719f5c1f6b418625'
setvar pkgrel = '1'
setvar pkgdesc = ""EFI Development Kit II""
setvar url = ""http://www.tianocore.org/edk2/""
setvar arch = ""x86_64""
setvar license = ""BSD""
setvar depends = """"
setvar makedepends = ""bash python2 iasl nasm util-linux-dev""
setvar install = """"
setvar subpackages = ""ovmf""
setvar source = ""$pkgname-$pkgver.tar.gz::https://github.com/tianocore/$pkgname/archive/$_commitid.tar.gz
	build-hack.patch""
setvar builddir = ""$srcdir/$pkgname-$_commitid""

case (CARCH) {
x86 {		setvar TARGET_ARCH = 'IA32'; setvar OVMFPKG = 'OvmfPkgIa32.dsc'}
x86_64 {		setvar TARGET_ARCH = 'X64'; setvar OVMFPKG = 'OvmfPkgX64.dsc'}
}

# use GCC49 instead of GCC5 until gcc 6.3 (see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70955)
setvar TOOLCHAIN = 'GCC49'
setvar RELEASE = 'DEBUG'

proc prepare {
	cd $builddir
	# unix line endings for the files to be patched
	sed -e 's/\r$//' -i BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp BaseTools/Source/C/VolInfo/VolInfo.c
	default_prepare
}

proc build {
	cd $builddir
	bash -c ". edksetup.sh" || return 1
	make -j1 -C BaseTools || return 1

	export WORKSPACE=$PWD
	export PACKAGES_PATH=$PWD
	export EDK_TOOLS_PATH=$PWD/BaseTools/
	export PATH=$PWD/BaseTools/BinWrappers/PosixLike/:$PATH

	msg "Building OVMF"
	command build -b ${RELEASE} -a ${TARGET_ARCH} -p OvmfPkg/${OVMFPKG} -t ${TOOLCHAIN} -n ${JOBS:-2} || return 1
}

proc package {
	cd $builddir
	mkdir -p "$pkgdir"/usr/bin \
		"$pkgdir"/usr/share/$pkgname/Conf \
		"$pkgdir"/usr/share/$pkgname/Scripts

	install BaseTools/Source/C/bin/* BaseTools/BinWrappers/PosixLike/LzmaF86Compress \
		"$pkgdir"/usr/bin
	install BaseTools/BuildEnv "$pkgdir"/usr/share/$pkgname/
	install BaseTools/Conf/*.template "$pkgdir"/usr/share/$pkgname/Conf
	install BaseTools/Scripts/GccBase.lds "$pkgdir"/usr/share/$pkgname/Scripts

	cp -R BaseTools/Source/Python "$pkgdir"/usr/share/$pkgname/Python
	for i in build BPDG Ecc GenDepex GenFds GenPatchPcdTable PatchPcdValue TargetTool Trim UPT {
		echo '#!/bin/sh
export PYTHONPATH=/usr/share/$pkgname/Python
exec python '/usr/share/$pkgname/Python/$i/$i.py' "$@"' > "$pkgdir"/usr/bin/$i
		chmod +x "$pkgdir"/usr/bin/$i
	}
}

proc ovmf {
	setvar pkgdesc = ""Open Virtual Machine Firmware (OVMF) BIOS""
	setvar license = ""BSD MIT""

	cd $builddir
	mkdir -p "$subpkgdir"/usr/share/$subpkgname/
	install Build/Ovmf${TARGET_ARCH}/${RELEASE}_${TOOLCHAIN}/FV/OVMF.fd "$subpkgdir"/usr/share/$subpkgname/bios.bin
}

setvar md5sums = ""6e6a28fbdcc4062108da9df348d69240  edk2-0.0.20161115.tar.gz
63def07e68b1fad4062c99406bde7c0a  build-hack.patch""
setvar sha256sums = ""e71586a0f335412a834b6720d88ec9d0a5d33621bbb6d87decdc2ee84b8d6e0e  edk2-0.0.20161115.tar.gz
d493fd3d711a96229b9fba8de81ba42c236af14e508f8090d3e9dd74d90e2371  build-hack.patch""
setvar sha512sums = ""7b1de6c5aa08ba6ab0897b59c5f0eab654062c01c0a9bcdf182a5fd695eb8639b8cc418b2d2e0ebb35855b2bf7294947335d49c0c790fa05830f783ddaea6414  edk2-0.0.20161115.tar.gz
29158db1d54922f32215892bec0542176d64de4501fcdb1535508bb48b25e1f364ccd57b58aca07f2415c4654f76409dd64e40f5066db3fb9284a7217bbc2230  build-hack.patch""