makedepends=(efibootmgr efivar freetype)
run=(efivar)

description="The GRUB package contains the GRand Unified Bootloader, EFI version"
url="http://www.gnu.org/software/grub/"

packager="Grat-OS Team"
maintainer="Grat-OS Team"

name=grub
version=2.12
release=2

source=(http://ftp.gnu.org/gnu/grub/grub-$version.tar.xz
        https://repo.grat-os.fr/files/unicode.pf2
        grub.cfg
        default_grub)

PKGMK_GROUPS=(man locale)

unset CFLAGS
unset CPPFLAGS
unset CXXFLAGS
unset LDFLAGS
unset MAKEFLAGS

build_x86_64() {

  cp -a grub-$version grub-efi-$version

  #grub
  cd grub-$version

  #fix missing file
  echo depends bli part_gpt > grub-core/extra_deps.lst
  
  ./configure --prefix=/usr \
        --libdir=/usr/lib \
        --sysconfdir=/etc \
        --bindir=/usr/bin \
        --sbindir=/usr/sbin \
        --enable-grub-mkfont \
        --disable-grub-emu-usb \
        --enable-efiemu \
        --infodir=/usr/share/info \
        --disable-werror
  
  make
  make DESTDIR=$PKG install
  
  install -d $PKG/boot/grub
  install -Dm644 ../grub.cfg $PKG/boot/grub/grub.cfg.example
  install -d $PKG/etc/default
  install -Dm644 ../default_grub $PKG/etc/default/grub

  # Now, let's build the EFI binaries
  cd $SRC/grub-efi-$version

  #fix missing file
  echo depends bli part_gpt > grub-core/extra_deps.lst

  ./configure --prefix=/usr \
              --libdir=/usr/lib \
              --sysconfdir=/etc \
              --bindir=/usr/bin \
              --sbindir=/usr/sbin \
              --disable-efiemu \
              --with-platform=efi \
              --disable-werror

  make
  make DESTDIR=$PKG install

  # make grub only list symbolic links, ie. kernel-lts kernel-61 etc.
  sed -i 's#for i in /boot/vmlinuz-\* /vmlinuz-\* /boot/kernel-\* ; do#for i in $(find "/boot" -maxdepth 1 -type l -name "kernel\*" | sort -V); do#' $PKG/etc/grub.d/10_linux

  cp ../unicode.pf2 $PKG/usr/share/grub/

}

build_other() {

  mkdir -pv $PKG/usr
}

build() {

  case $(uname -m) in
    x86_64)
      build_x86_64
    ;;
    *)
      build_other
    ;;
  esac
}
