build/boot/roms: only do 1 custom kbd/payload/mode

-k, -p and -d let you set keymap, payload and displaymode
respectively, but the handling for this is buggy when
passing multiple arguments.

Support only one argument, for simplicity. This is how
people use them anyway, and it makes lbmk less buggy.

Signed-off-by: Leah Rowe <leah@libreboot.org>
btrfsvols
Leah Rowe 2023-09-30 16:14:27 +01:00
parent d268f5eb28
commit 49b266eb42
3 changed files with 24 additions and 31 deletions

View File

@ -3,11 +3,12 @@
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
first=""
board=""
boards=""
displaymodes=""
payloads=""
keyboard_layouts=""
_displaymode=""
_payload=""
_keyboard_layout=""
main()
{
@ -21,13 +22,13 @@ main()
while [ $# -gt 0 ]; do
case ${1} in
-d)
displaymodes="${2} ${displaymodes}"
_displaymode="${2}"
shift ;;
-p)
payloads="${2} ${payloads}"
_payload="${2}"
shift ;;
-k)
keyboard_layouts="${2} ${keyboard_layouts}"
_keyboard_layout="${2}"
shift ;;
all)
first="all" ;;

View File

@ -13,18 +13,16 @@ set -u -e
. "include/boot.sh"
read projectname < projectname
opts=""
first=""
targets=""
# main() is in include/boot.sh
handle_targets()
{
[ -z "${displaymodes}" ] || opts="-d \"${displaymodes}\" ${opts}"
[ -z "${payloads}" ] || opts="-p \"${payloads}\" ${opts}"
[ -z "${keyboard_layouts}" ] || \
opts="-k \"${keyboard_layouts}\" ${opts}"
[ -z "${_displaymode}" ] || _displaymode="-d ${_displaymode}"
[ -z "${_payload}" ] || _payload="-p ${_payload}"
[ -z "${_keyboard_layout}" ] || \
_keyboard_layout="-k ${_keyboard_layout}"
printf "Building %s ROM images\n" "${projectname}"
@ -46,8 +44,10 @@ check_targets()
build_bootroms()
{
opts="${_displaymode} ${_payload} ${_keyboard_layout}"
for x in ${boards}; do
./build boot roms_helper ${opts} ${x} || \
./build boot roms_helper ${_displaymode} ${_payload} \
${_keyboard_layout} ${x} || \
err "handle_targets ${opts} ${x}: build error"
[ -d "bin/${x}" ] && targets="${x} ${targets}"
done

View File

@ -63,9 +63,6 @@ handle_targets()
configure_target()
{
printf "\n\nboard %s, kb %s, displaymode %s, payloads %s\n" \
"${board}" "${keyboard_layouts}" "${displaymodes}" "${payloads}"
targetdir="${cfgsdir}/${board}"
[ -d "${targetdir}" ] || \
@ -121,8 +118,8 @@ configure_target()
blobs_required="y"
# Override all payload directives with cmdline args
if [ ! -z ${payloads} ]; then
printf "setting payloads %s\n" "$payloads"
if [ ! -z ${_payload} ]; then
printf "setting payload to: %s\n" "${_payload}"
payload_grub="n"
payload_grub_withseabios="n" # seabios chainloaded from grub
payload_seabios="n"
@ -130,9 +127,7 @@ configure_target()
payload_uboot="n"
payload_memtest="n"
for payload in ${payloads} ; do
eval "payload_${payload}=y"
done
eval "payload_${_payload}=y"
fi
}
@ -217,7 +212,7 @@ build_target()
hmode="vesafb"
[ "${initmode}" = "vgarom" ] || hmode="corebootfb"
modes="${hmode} txtmode"
[ -z ${displaymodes} ] || modes="${displaymodes}"
[ -z ${_displaymode} ] || modes="${_displaymode}"
for y in ${modes}; do
displaymode="${y}"
[ "${initmode}" = "normal" ] && \
@ -356,15 +351,12 @@ build_grub_roms() {
rm -f "${tmpcfg}" || err "cannot delete tmpcfg"
keymaps=""
if [ -z ${keyboard_layouts} ]; then
for kmapfile in "${kmapdir}"/*; do
keymaps="${keymaps} ${kmapfile}"
done
else
for keymapname in ${keyboard_layouts}; do
keymaps="${keymaps} ${kmapdir}/${keymapname}.gkb"
done
fi
for kmapfile in "${kmapdir}"/*; do
keymaps="${keymaps} ${kmapfile}"
done
[ -z ${_keyboard_layout} ] || \
keymaps="${kmapdir}/${_keyboard_layout}.gkb"
for keymapfile in ${keymaps}; do
printf "keymaps is %s, keymapfile is %s\n" \
"${keymaps}" "${keymapfile}"