summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-09-30 16:14:27 +0100
committerLeah Rowe <leah@libreboot.org>2023-09-30 16:14:27 +0100
commit49b266eb4248f87d111e9babae86a873300afa03 (patch)
tree91a5e024849c127077a26ba8dc2d9137f1b176c3
parentd268f5eb28bc95b2d72bae022fce1768a5cb7147 (diff)
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>
-rwxr-xr-xinclude/boot.sh13
-rwxr-xr-xscript/build/boot/roms14
-rwxr-xr-xscript/build/boot/roms_helper28
3 files changed, 24 insertions, 31 deletions
diff --git a/include/boot.sh b/include/boot.sh
index c8df74a5..fe058ecb 100755
--- a/include/boot.sh
+++ b/include/boot.sh
@@ -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" ;;
diff --git a/script/build/boot/roms b/script/build/boot/roms
index d4261757..39c0eed6 100755
--- a/script/build/boot/roms
+++ b/script/build/boot/roms
@@ -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
diff --git a/script/build/boot/roms_helper b/script/build/boot/roms_helper
index 96b44940..a92012e1 100755
--- a/script/build/boot/roms_helper
+++ b/script/build/boot/roms_helper
@@ -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}"