diff options
Diffstat (limited to 'libre/ovmf/PKGBUILD')
-rw-r--r-- | libre/ovmf/PKGBUILD | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/libre/ovmf/PKGBUILD b/libre/ovmf/PKGBUILD new file mode 100644 index 000000000..88592d662 --- /dev/null +++ b/libre/ovmf/PKGBUILD @@ -0,0 +1,61 @@ +# Maintainer (Arch): Thomas Bächler <thomas@archlinux.org> +# Maintainer: André Silva <emulatorman@parabola.nu> +pkgname=ovmf +pkgver=20856 +pkgrel=1.parabola1 +arch=('any') +pkgdesc="Tianocore UEFI firmware for qemu, with free FatPkg support" +url="http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK2" +license=('custom') +makedepends=('git' 'python2' 'iasl' 'nasm' 'perl-libwww') +source=('edk2::git+https://github.com/tianocore/edk2#branch=UDK2017') +sha256sums=('SKIP') +options=(!makeflags) +_toolchain_opt=GCC49 + +pkgver() { + cd "${srcdir}"/edk2 + printf "$(git rev-list --count HEAD)" +} + +prepare() { + cd "${srcdir}" + # edk2 uses python everywhere, but expects python2 + mkdir bin + ln -s /usr/bin/python2 bin/python +} + +build() { + if [ "$CARCH" != "x86_64" ]; then + error "This package must be built under the x86_64 architecture." + false + fi + export PATH="${srcdir}/bin:$PATH" + cd "${srcdir}/"edk2 + make -C BaseTools + export EDK_TOOLS_PATH="${srcdir}"/edk2/BaseTools + . edksetup.sh BaseTools + + # Set RELEASE target, toolchain and number of build threads + sed "s|^TARGET[ ]*=.*|TARGET = RELEASE|; \ + s|TOOL_CHAIN_TAG[ ]*=.*|TOOL_CHAIN_TAG = ${_toolchain_opt}|; \ + s|MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*|MAX_CONCURRENT_THREAD_NUMBER = $(nproc)|;" -i Conf/target.txt + # Build OVMF for ia32 + sed "s|^TARGET_ARCH[ ]*=.*|TARGET_ARCH = IA32|; \ + s|^ACTIVE_PLATFORM[ ]*=.*|ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc|;" -i Conf/target.txt + ./BaseTools/BinWrappers/PosixLike/build + # Build OVMF for x64 + sed "s|^TARGET_ARCH[ ]*=.*|TARGET_ARCH = X64|; \ + s|^ACTIVE_PLATFORM[ ]*=.*|ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc|;" -i Conf/target.txt + ./BaseTools/BinWrappers/PosixLike/build +} + +package() { + install -D -m644 "${srcdir}"/edk2/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF.fd "${pkgdir}"/usr/share/ovmf/ovmf_ia32.bin + install -D -m644 "${srcdir}"/edk2/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF_CODE.fd "${pkgdir}"/usr/share/ovmf/ovmf_code_ia32.bin + install -D -m644 "${srcdir}"/edk2/Build/OvmfIa32/RELEASE_${_toolchain_opt}/FV/OVMF_VARS.fd "${pkgdir}"/usr/share/ovmf/ovmf_vars_ia32.bin + install -D -m644 "${srcdir}"/edk2/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF.fd "${pkgdir}"/usr/share/ovmf/ovmf_x64.bin + install -D -m644 "${srcdir}"/edk2/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF_CODE.fd "${pkgdir}"/usr/share/ovmf/ovmf_code_x64.bin + install -D -m644 "${srcdir}"/edk2/Build/OvmfX64/RELEASE_${_toolchain_opt}/FV/OVMF_VARS.fd "${pkgdir}"/usr/share/ovmf/ovmf_vars_x64.bin + install -D -m644 "${srcdir}"/edk2/OvmfPkg/License.txt "${pkgdir}"/usr/share/licenses/ovmf/License.txt +} |