diff options
-rwxr-xr-x | resources/scripts/build/payload/seabios | 78 |
1 files changed, 50 insertions, 28 deletions
diff --git a/resources/scripts/build/payload/seabios b/resources/scripts/build/payload/seabios index 7cff55c7..c05b1b11 100755 --- a/resources/scripts/build/payload/seabios +++ b/resources/scripts/build/payload/seabios @@ -22,39 +22,61 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v 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 - mkdir -p payload/seabios/ || exit 1 -fi +main() +{ + printf "Building SeaBIOS payloads and SeaVGABIOS\n" -rm -f payload/seabios/* || exit 1 + check_dependencies + build_seabios_payloads -if [ ! -d "seabios/" ]; then - ./download seabios || exit 1 -fi + # 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} +} -for x in normal vgarom libgfxinit; do - if [ ! -f seabios/Makefile ]; then - printf "SeaBIOS not properly downloaded.\n" - exit 1 +check_dependencies() +{ + if [ ! -d "${payloaddir}" ]; then + mkdir -p ${payloaddir}/ || exit 1 fi - make distclean -BC seabios || exit 1 - cp "resources/seabios/config/${x}" seabios/.config - make silentoldconfig -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 - if [ "${x}" = "libgfxinit" ]; then - cp seabios/out/vgabios.bin payload/seabios/seavgabios.bin \ - || exit 1 + + rm -f ${payloaddir}/* || exit 1 + + if [ ! -d "seabios/" ]; then + ./download seabios || exit 1 fi - rm -f seabios/.config || exit 1 -done +} + +build_seabios_payloads() +{ + for x in normal vgarom libgfxinit; do + if [ ! -f seabios/Makefile ]; then + printf "SeaBIOS not properly downloaded.\n" + exit 1 + fi + + make distclean -BC seabios || exit 1 + + cp "resources/seabios/config/${x}" seabios/.config + make silentoldconfig -j$(nproc) -BC seabios || exit 1 + make -j$(nproc) -BC seabios || exit 1 + + seabios_elf_dst="${payloaddir}/seabios_${x}.elf" + cp ${seabios_elf} "${seabios_elf_dst}" || exit 1 -# clean it again. gotta keep it clean! -if [ -f seabios/Makefile ]; then - make distclean -BC seabios || exit 1 -fi + if [ "${x}" = "libgfxinit" ]; then + cp ${seavgabios} ${payloaddir}/seavgabios.bin \ + || exit 1 + fi + rm -f seabios/.config || exit 1 + done +} -printf "Done! SeaBIOS files are in payload/seabios/\n\n" +main $@ |