diff options
Diffstat (limited to 'extra/efilinux-efi/PKGBUILD')
-rw-r--r-- | extra/efilinux-efi/PKGBUILD | 62 |
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" + +} |