#!/bin/sh -e

(cd grub
 patch -p1 < 0008-Fix-packed-not-aligned-error-on-GCC-8.patch
 patch -p1 < grub-2.02-relocation_fix-1.patch)

# Grub is built in a function so the script argument needs to be stored.
pkg_dir=$1

# Change naming from GNU/Linux to Linux.
sed 's|GNU/Linux|Linux|' -i grub/util/grub.d/10_linux.in

build_grub() (
    cp -R grub "grub-${1##*=}"
    cd "grub-${1##*=}"

    autoreconf -fi

    ./configure \
        --prefix=/usr \
        --sbindir=/usr/bin \
        --sysconfdir=/etc \
        --disable-nls \
        --disable-werror \
        "$@"

    make
    make DESTDIR="$pkg_dir" install
)

build_grub --with-platform=pc
build_grub --with-platform=efi --disable-efiemu

# Install /etc/default/grub (used by grub-mkconfig).
install -Dm0644 grub.default "$1/etc/default/grub"

# Remove gdb debugging files.
(
    cd "$pkg_dir"
    rm -f usr/lib/grub/*/*.module
    rm -f usr/lib/grub/*/*.image
    rm -f usr/lib/grub/*/kernel.exec
    rm -f usr/lib/grub/*/gdb_grub
    rm -f usr/lib/grub/*/gmodule.pl
    rm -f usr/lib/charset.alias
) ||:

# Remove unneedded file by musl
rm -f "$1/usr/lib/charset.alias"