Files
lbmk/script/build/grub/payload
T
Leah Rowe cc1642096e Use SPDX license headers on all scripts
This results in much cleaner copyright and license declarations.
SPDX headers are legally recognised and make auditing easier.

Also, remove descriptions of each script, from each script.
Libreboot documentation at docs/maintain/ describes them.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2023-09-25 02:19:48 +01:00

72 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env sh
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2014,2015,2020,2021,2023 Leah Rowe <info@minifree.org>
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
. "include/err.sh"
grubcfgsdir="config/grub"
. "${grubcfgsdir}/modules.list"
main()
{
printf "Creating GRUB payloads and configuration files\n"
handle_dependencies
for keylayoutfile in "${grubcfgsdir}/keymap/"*.gkb; do
[ -f "${keylayoutfile}" ] || continue
keymap="${keylayoutfile##${grubcfgsdir}/keymap/}"
keymap="${keymap%.gkb}"
printf "keymap %s\n" "${keymap}" > \
"elf/grub/keymap_${keymap}.cfg" || \
err "make_keymapcfgs: cannot create elf/grub/keymap_${keymap}.cfg"
done
grub/grub-mkstandalone \
--grub-mkimage="grub/grub-mkimage" \
-O i386-coreboot \
-o "elf/grub/grub.elf" \
-d grub/grub-core/ \
--fonts= --themes= --locales= \
--modules="${grub_modules}" \
--install-modules="${grub_install_modules}" \
"/boot/grub/layouts/colemak.gkb=${grubcfgsdir}/keymap/colemak.gkb" \
"/boot/grub/layouts/deqwertz.gkb=${grubcfgsdir}/keymap/deqwertz.gkb" \
"/boot/grub/layouts/esqwerty.gkb=${grubcfgsdir}/keymap/esqwerty.gkb" \
"/boot/grub/layouts/frazerty.gkb=${grubcfgsdir}/keymap/frazerty.gkb" \
"/boot/grub/layouts/frdvbepo.gkb=${grubcfgsdir}/keymap/frdvbepo.gkb" \
"/boot/grub/layouts/itqwerty.gkb=${grubcfgsdir}/keymap/itqwerty.gkb" \
"/boot/grub/layouts/svenska.gkb=${grubcfgsdir}/keymap/svenska.gkb" \
"/boot/grub/layouts/trqwerty.gkb=${grubcfgsdir}/keymap/trqwerty.gkb" \
"/boot/grub/layouts/ukdvorak.gkb=${grubcfgsdir}/keymap/ukdvorak.gkb" \
"/boot/grub/layouts/ukqwerty.gkb=${grubcfgsdir}/keymap/ukqwerty.gkb" \
"/boot/grub/layouts/usdvorak.gkb=${grubcfgsdir}/keymap/usdvorak.gkb" \
"/boot/grub/layouts/usqwerty.gkb=${grubcfgsdir}/keymap/usqwerty.gkb" \
"/boot/grub/grub.cfg=${grubcfgsdir}/config/grub_memdisk.cfg" \
"/boot/grub/grub_default.cfg=${grubcfgsdir}/config/grub.cfg" \
err "build_grub_elf: cannot build grub payload (grub-mkstandalone)"
printf "\nDone! Check elf/grub/\n\n"
}
handle_dependencies()
{
[ -d "grub/" ] || \
./update project repo grub || \
err "handle_dependencies: cannot fetch grub"
[ -f "grub/grub-mkstandalone" ] || \
./build grub utils || \
err "handle_dependencies: cannot build grub utils"
[ -d "elf/grub" ] || \
mkdir -p elf/grub || \
err "handle_dependencies: cannot mkdir elf/grub"
rm -f elf/grub/* || \
err "handle_dependencies: cannot rm inside: elf/grub/"
}
main $@