build/seabios: cleaner coding style

top-down logic, main() on top

moved some hardcoded strings to variables
This commit is contained in:
Leah Rowe
2023-05-14 21:33:19 +01:00
parent ddad8f00c6
commit 1388cccbc7
+40 -18
View File
@@ -22,39 +22,61 @@
[ "x${DEBUG+set}" = 'xset' ] && set -v [ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e set -u -e
printf "Building SeaBIOS payloads and SeaVGABIOS\n" payloaddir="payload/seabios"
seabios_elf="seabios/out/bios.bin.elf"
seavgabios="seabios/out/vgabios.bin"
if [ ! -d "payload/seabios" ]; then main()
mkdir -p payload/seabios/ || exit 1 {
fi printf "Building SeaBIOS payloads and SeaVGABIOS\n"
rm -f payload/seabios/* || exit 1 check_dependencies
build_seabios_payloads
if [ ! -d "seabios/" ]; then # clean it again. gotta keep it clean!
if [ -f seabios/Makefile ]; then
make distclean -BC seabios || exit 1
fi
printf "Done! SeaBIOS files are in %s/\n\n" ${payloaddir}
}
check_dependencies()
{
if [ ! -d "${payloaddir}" ]; then
mkdir -p ${payloaddir}/ || exit 1
fi
rm -f ${payloaddir}/* || exit 1
if [ ! -d "seabios/" ]; then
./download seabios || exit 1 ./download seabios || exit 1
fi fi
}
for x in normal vgarom libgfxinit; do build_seabios_payloads()
{
for x in normal vgarom libgfxinit; do
if [ ! -f seabios/Makefile ]; then if [ ! -f seabios/Makefile ]; then
printf "SeaBIOS not properly downloaded.\n" printf "SeaBIOS not properly downloaded.\n"
exit 1 exit 1
fi fi
make distclean -BC seabios || exit 1 make distclean -BC seabios || exit 1
cp "resources/seabios/config/${x}" seabios/.config cp "resources/seabios/config/${x}" seabios/.config
make silentoldconfig -j$(nproc) -BC seabios || exit 1 make silentoldconfig -j$(nproc) -BC seabios || exit 1
make -j$(nproc) -BC seabios || exit 1 make -j$(nproc) -BC seabios || exit 1
cp seabios/out/bios.bin.elf "payload/seabios/seabios_${x}.elf" \
|| exit 1 seabios_elf_dst="${payloaddir}/seabios_${x}.elf"
cp ${seabios_elf} "${seabios_elf_dst}" || exit 1
if [ "${x}" = "libgfxinit" ]; then if [ "${x}" = "libgfxinit" ]; then
cp seabios/out/vgabios.bin payload/seabios/seavgabios.bin \ cp ${seavgabios} ${payloaddir}/seavgabios.bin \
|| exit 1 || exit 1
fi fi
rm -f seabios/.config || exit 1 rm -f seabios/.config || exit 1
done done
}
# clean it again. gotta keep it clean! main $@
if [ -f seabios/Makefile ]; then
make distclean -BC seabios || exit 1
fi
printf "Done! SeaBIOS files are in payload/seabios/\n\n"