summaryrefslogtreecommitdiff
path: root/extra/efilinux-efi/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'extra/efilinux-efi/PKGBUILD')
-rw-r--r--extra/efilinux-efi/PKGBUILD62
1 files changed, 62 insertions, 0 deletions
diff --git a/extra/efilinux-efi/PKGBUILD b/extra/efilinux-efi/PKGBUILD
new file mode 100644
index 000000000..bd75029c5
--- /dev/null
+++ b/extra/efilinux-efi/PKGBUILD
@@ -0,0 +1,62 @@
+# Contributor : Keshav Padram <(the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+
+_gitroot="git://git.kernel.org/pub/scm/boot/efilinux/efilinux.git"
+_gitname="efilinux"
+_gitbranch="master"
+
+pkgname="efilinux-efi"
+pkgver="1.0"
+pkgrel="8"
+pkgdesc="Simple UEFI Linux bootloader - Precursor to EFISTUB"
+url="https://github.com/mfleming/efilinux"
+arch=('x86_64' 'i686')
+license=('GPL')
+makedepends=('gnu-efi-libs')
+depends=('dosfstools' 'efibootmgr')
+options=('!strip')
+install="${pkgname}.install"
+
+source=("${_gitname}::git+${_gitroot}#branch=${_gitbranch}")
+sha1sums=('SKIP')
+
+[[ "${CARCH}" == "x86_64" ]] && _EFI_ARCH="x86_64"
+[[ "${CARCH}" == "i686" ]] && _EFI_ARCH="ia32"
+
+[[ "${CARCH}" == "x86_64" ]] && _EFI_S_ARCH="x64"
+[[ "${CARCH}" == "i686" ]] && _EFI_S_ARCH="ia32"
+
+build() {
+
+ rm -rf "${srcdir}/efilinux-${pkgver}/" || true
+ cp -r "${srcdir}/${_gitname}" "${srcdir}/efilinux-${pkgver}"
+
+ cd "${srcdir}/efilinux-${pkgver}/"
+
+ ## Add "-fno-strict-aliasing -fno-stack-protector -fno-stack-check -mno-sse -mno-mmx" to CFLAGS
+ sed 's|-DEFI_FUNCTION_WRAPPER|-fno-strict-aliasing -fno-stack-protector -fno-stack-check -mno-sse -mno-mmx -DEFI_FUNCTION_WRAPPER|g' -i "${srcdir}/efilinux-${pkgver}/Makefile"
+
+ ## Add -DGNU_EFI_USE_MS_ABI to CFLAGS
+ sed 's|-DEFI_FUNCTION_WRAPPER|-DEFI_FUNCTION_WRAPPER -DGNU_EFI_USE_MS_ABI|g' -i "${srcdir}/efilinux-${pkgver}/Makefile"
+
+ ## Add -m64 for x86_64 build
+ sed 's|CFLAGS += -mno-red-zone|CFLAGS += -m64 -mno-red-zone|g' -i "${srcdir}/efilinux-${pkgver}/Makefile"
+
+ ## Unset all compiler FLAGS
+ unset CFLAGS
+ unset CPPFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ make CRT0="/usr/lib/crt0-efi-${_EFI_ARCH}.o" LDSCRIPT="/usr/lib/elf_${_EFI_ARCH}_efi.lds"
+
+}
+
+package() {
+
+ cd "${srcdir}/efilinux-${pkgver}/"
+
+ install -d "${pkgdir}/usr/lib/efilinux/"
+ install -D -m0644 "${srcdir}/efilinux-${pkgver}/efilinux.efi" "${pkgdir}/usr/lib/efilinux/efilinux${_EFI_S_ARCH}.efi"
+
+}