summaryrefslogtreecommitdiff
path: root/libre/ovmf/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'libre/ovmf/PKGBUILD')
-rw-r--r--libre/ovmf/PKGBUILD61
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
+}