#!/usr/bin/env bash
name='grub'
release='4'
version='2.14'
url='https://ftp.gnu.org/gnu/grub'
description='GNU GRand Unified Bootloader'
email='parduscix@yandex.ru'
maintainer='sulincix'
license=('GPLv3')
source=("https://ftp.gnu.org/gnu/grub/grub-$version.tar.xz"
        "grub.default")
depends=(lvm2)
makedepends=()
sha256sums=('bc8d3c73535b8838d8c8e2654d73edc4e6ae8c8acdb45d5df5dc9a1547446d43'
            'SKIP')
group=(sys.boot)
uses=(efi bios)
uses_extra=(ia32)
arch=('x86_64')
dontstrip=1
efi_depends=(efibootmgr)
ia32_depends=(efibootmgr)

unset CFLAGS
unset CXXFLAGS

get_grub_opt(){
    echo -n "--disable-efiemu "
    if [[ "$1" == "efi" ]] ; then
        echo -n "--with-platform=efi --target=x86_64"
    elif [[ "$1" == "ia32" ]] ; then
        echo -n "--with-platform=efi --target=i386"
    elif [[ "$1" == "bios" ]] ; then
        echo -n "--with-platform=pc"
    fi
}

prepare(){
    echo depends bli part_gpt > $name-$version/grub-core/extra_deps.lst
    for tgt in ${uses[@]} ; do
        if ! use $tgt ; then
            continue
        fi
        cp -prfv $name-$version $tgt
    done
}

setup(){
    for tgt in ${uses[@]} ; do
        if ! use $tgt ; then
            continue
        fi
        cd $tgt
        autoreconf -fvi
        ./configure --prefix=/usr \
            --sysconfdir=/etc \
            --libdir=/usr/lib64/ \
            --disable-nls \
            --disable-werror \
            --disable-grub-themes \
            $(get_grub_opt $tgt)
        cd ..
    done
}

build(){
    for tgt in ${uses[@]} ; do
        if ! use $tgt ; then
            continue
        fi
        make $jobs -C $tgt
    done
}

package(){
    for tgt in ${uses[@]} ; do
        if ! use $tgt ; then
            continue
        fi
        make $jobs -C $tgt install
    done
    # default grub config
    mkdir -p $DESTDIR/etc/default $DESTDIR/usr/bin/
    install -D -m0644 ./grub.default ${DESTDIR}/etc/default/grub
    echo "#!/bin/sh" > $DESTDIR/usr/bin/update-grub
    echo "grub-mkconfig -o /boot/grub/grub.cfg" >> $DESTDIR/usr/bin/update-grub
}
