diff options
Diffstat (limited to 'extra/grub/build')
-rwxr-xr-x | extra/grub/build | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/extra/grub/build b/extra/grub/build new file mode 100755 index 00000000..10513bf0 --- /dev/null +++ b/extra/grub/build @@ -0,0 +1,55 @@ +#!/bin/sh -e + +# Grub expects Python but it isn't actually needed. Give +# it something fake so that configure passes. +export PYTHON=/bin/true + +# Disable the post-python mv calls as a means of disabling +# the Python tooling. The /bin/true above will create a +# blank file, this prevents the blank file from overwriting +# the existing one. +sed 's/mv $@.new $@/:/g' grub/Makefile.in > _ +cat _ > grub/Makefile.in; rm -f _ + +# Strip '-march' from 'CFLAGS' as per advice from upstream. +# Fixes build fails on specific hardware. +CFLAGS=$(printf %s "$CFLAGS" | sed 's/-march=[^ ]*//g') + +# Grub is built in a function so the script argument +# needs to be stored. +pkg_dir=$1 + +build_grub() ( + cp -a grub "grub-${1##*=}" + cd "grub-${1##*=}" + + ./configure \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --disable-werror \ + --disable-nls \ + --disable-grub-mkfont \ + --disable-grub-mount \ + "$@" + + 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/usr/lib" + + rm -f grub/*/*.module + rm -f grub/*/*.image + rm -f grub/*/kernel.exec + rm -f grub/*/gdb_grub + rm -f grub/*/gmodule.pl +) |