build/boot/*: unified main() function
The *same* main() function is now used on both scripts. However, merging both scripts together would be less efficient on sloccount, and would be error-prone. The purpose of having roms_helper is that the variables get re-initialised the same way each time, for each board, automatically. Signed-off-by: Leah Rowe <leah@libreboot.org>btrfsvols
parent
f3c4f208d0
commit
7922b6e0e5
|
@ -0,0 +1,41 @@
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
|
||||||
|
# SPDX-FileCopyrightText: 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
|
||||||
|
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
|
||||||
|
|
||||||
|
board=""
|
||||||
|
boards=""
|
||||||
|
displaymodes=""
|
||||||
|
payloads=""
|
||||||
|
keyboard_layouts=""
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
[ $# -lt 1 ] && usage && err "target not specified"
|
||||||
|
|
||||||
|
first="${1}"
|
||||||
|
[ "${first}" = "help" ] && usage && exit 0
|
||||||
|
[ "${first}" = "list" ] && \
|
||||||
|
listitems config/coreboot && exit 0
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case ${1} in
|
||||||
|
-d)
|
||||||
|
displaymodes="${2} ${displaymodes}"
|
||||||
|
shift ;;
|
||||||
|
-p)
|
||||||
|
payloads="${2} ${payloads}"
|
||||||
|
shift ;;
|
||||||
|
-k)
|
||||||
|
keyboard_layouts="${2} ${keyboard_layouts}"
|
||||||
|
shift ;;
|
||||||
|
all)
|
||||||
|
first="all" ;;
|
||||||
|
*)
|
||||||
|
boards="${1} ${boards}" ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
handle_targets
|
||||||
|
}
|
|
@ -10,48 +10,22 @@ set -u -e
|
||||||
|
|
||||||
. "include/err.sh"
|
. "include/err.sh"
|
||||||
. "include/option.sh"
|
. "include/option.sh"
|
||||||
|
. "include/boot.sh"
|
||||||
|
|
||||||
read projectname < projectname
|
read projectname < projectname
|
||||||
opts=""
|
opts=""
|
||||||
boards=
|
|
||||||
first=""
|
first=""
|
||||||
targets=""
|
targets=""
|
||||||
|
|
||||||
main()
|
# main() is in include/boot.sh
|
||||||
{
|
|
||||||
[ $# -lt 1 ] && usage && err "target not specified"
|
|
||||||
|
|
||||||
first="${1}"
|
|
||||||
[ "${first}" = "help" ] && usage && exit 0
|
|
||||||
[ "${first}" = "list" ] && \
|
|
||||||
listitems config/coreboot && exit 0
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case ${1} in
|
|
||||||
-d)
|
|
||||||
opts="${opts} -d ${2}"
|
|
||||||
shift ;;
|
|
||||||
-p)
|
|
||||||
opts="${opts} -p ${2}"
|
|
||||||
shift ;;
|
|
||||||
-k)
|
|
||||||
opts="${opts} -k ${2}"
|
|
||||||
shift ;;
|
|
||||||
all)
|
|
||||||
first="all" ;;
|
|
||||||
*)
|
|
||||||
boards="${boards} ${1} " ;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
handle_targets
|
|
||||||
confirm_targets
|
|
||||||
}
|
|
||||||
|
|
||||||
handle_targets()
|
handle_targets()
|
||||||
{
|
{
|
||||||
[ -z ${opts+x} ] && opts=""
|
[ -z "${displaymodes}" ] || opts="-d \"${displaymodes}\" ${opts}"
|
||||||
|
[ -z "${payloads}" ] || opts="-p \"${payloads}\" ${opts}"
|
||||||
|
[ -z "${keyboard_layouts}" ] || \
|
||||||
|
opts="-k \"${keyboard_layouts}\" ${opts}"
|
||||||
|
|
||||||
printf "Building %s ROM images\n" "${projectname}"
|
printf "Building %s ROM images\n" "${projectname}"
|
||||||
|
|
||||||
[ "${first}" != "all" ] || boards="$(listitems config/coreboot)" || \
|
[ "${first}" != "all" ] || boards="$(listitems config/coreboot)" || \
|
||||||
|
@ -59,22 +33,23 @@ handle_targets()
|
||||||
|
|
||||||
check_targets
|
check_targets
|
||||||
build_bootroms
|
build_bootroms
|
||||||
|
confirm_targets
|
||||||
}
|
}
|
||||||
|
|
||||||
check_targets()
|
check_targets()
|
||||||
{
|
{
|
||||||
for board in ${boards}; do
|
for x in ${boards}; do
|
||||||
[ -d "config/coreboot/${board}/" ] || \
|
[ -d "config/coreboot/${x}/" ] || \
|
||||||
err "check_targets: target not defined: ${board}"
|
err "check_targets: target not defined: ${x}"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
build_bootroms()
|
build_bootroms()
|
||||||
{
|
{
|
||||||
for board in ${boards}; do
|
for x in ${boards}; do
|
||||||
./build boot roms_helper ${board}${opts} || \
|
./build boot roms_helper ${opts} ${x} || \
|
||||||
err "handle_targets ${board}${opts}: build error"
|
err "handle_targets ${opts} ${x}: build error"
|
||||||
[ -d "bin/${board}" ] && targets="${board} ${targets}"
|
[ -d "bin/${x}" ] && targets="${x} ${targets}"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
set -u -e
|
set -u -e
|
||||||
|
|
||||||
. "include/err.sh"
|
. "include/err.sh"
|
||||||
|
. "include/boot.sh"
|
||||||
|
|
||||||
read projectname < projectname
|
read projectname < projectname
|
||||||
|
|
||||||
|
@ -17,12 +18,8 @@ cfgsdir="config/coreboot"
|
||||||
|
|
||||||
blobs_required=""
|
blobs_required=""
|
||||||
|
|
||||||
board=""
|
|
||||||
ubdir=""
|
ubdir=""
|
||||||
kmapdir="config/grub/keymap"
|
kmapdir="config/grub/keymap"
|
||||||
displaymodes=""
|
|
||||||
payloads=""
|
|
||||||
keyboard_layouts=""
|
|
||||||
|
|
||||||
grub_timeout=""
|
grub_timeout=""
|
||||||
grub_scan_disk="undefined"
|
grub_scan_disk="undefined"
|
||||||
|
@ -53,28 +50,11 @@ targetdir=""
|
||||||
|
|
||||||
grubelf="elf/grub/grub.elf"
|
grubelf="elf/grub/grub.elf"
|
||||||
|
|
||||||
main()
|
# main() is in include/boot.sh
|
||||||
|
|
||||||
|
handle_targets()
|
||||||
{
|
{
|
||||||
while [ $# -gt 0 ]; do
|
board="${boards%% *}"
|
||||||
case ${1} in
|
|
||||||
-d)
|
|
||||||
displaymodes="${displaymodes}${2}"
|
|
||||||
shift ;;
|
|
||||||
-p)
|
|
||||||
payloads="${payloads}${2}"
|
|
||||||
shift ;;
|
|
||||||
-k)
|
|
||||||
keyboard_layouts="${keyboard_layouts}${2}"
|
|
||||||
shift ;;
|
|
||||||
*)
|
|
||||||
board=${1} ;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
printf "\n\nboard %s, kb %s, displaymode %s, payloads %s\n" \
|
|
||||||
"${board}" "${keyboard_layouts}" "${displaymodes}" "${payloads}"
|
|
||||||
|
|
||||||
configure_target
|
configure_target
|
||||||
build_dependencies
|
build_dependencies
|
||||||
|
|
||||||
|
@ -83,6 +63,9 @@ main()
|
||||||
|
|
||||||
configure_target()
|
configure_target()
|
||||||
{
|
{
|
||||||
|
printf "\n\nboard %s, kb %s, displaymode %s, payloads %s\n" \
|
||||||
|
"${board}" "${keyboard_layouts}" "${displaymodes}" "${payloads}"
|
||||||
|
|
||||||
targetdir="${cfgsdir}/${board}"
|
targetdir="${cfgsdir}/${board}"
|
||||||
|
|
||||||
[ -d "${targetdir}" ] || \
|
[ -d "${targetdir}" ] || \
|
||||||
|
|
Loading…
Reference in New Issue