diff options
Diffstat (limited to 'script/roms')
-rwxr-xr-x | script/roms | 52 |
1 files changed, 21 insertions, 31 deletions
diff --git a/script/roms b/script/roms index 292193e9..b375d939 100755 --- a/script/roms +++ b/script/roms @@ -56,7 +56,9 @@ main() [ "${all}" != "y" ] || boards=$(items config/coreboot) || \ $err "Cannot generate list of boards for building" for x in ${boards}; do - handle_coreboot_target "$x" + [ -d "config/coreboot/$x/config" ] && \ + handle_coreboot_target "$x" && continue + printf "No configs for %s; skipping\n" "$x" done fi @@ -99,7 +101,7 @@ handle_serprog() done fi - [ "$xbmk_release" = "y" ] && mktar_release "bin/serprog_$1"; return 0 + [ "$xbmk_release" = "y" ] && mkrom_tarball "bin/serprog_$1"; return 0 } build_rp2040_rom() @@ -148,10 +150,8 @@ handle_coreboot_target() [ -d "bin/${board}" ] || return 0 [ "$xbmk_release" = "y" ] || targets="* bin/${board}\n${targets}" - [ "$xbmk_release" = "y" ] || return 0 - - targets="* bin/${relname}_$board.tar.xz\n$targets" - mktar_release "bin/$board" + [ "$xbmk_release" = "y" ] && mkrom_tarball "bin/$board" && \ + targets="* bin/${relname}_$board.tar.xz\n$targets"; return 0 } configure_target() @@ -179,11 +179,10 @@ configure_target() [ "$payload_seabios_grubonly" = "y" ] && payload_seabios_withgrub="y" # The reverse logic must not be applied. If SeaBIOS-with-GRUB works, - # that doesn't mean GRUB-withSeaBIOS will. For example, the board - # might have a graphics card whose vga rom coreboot doesn't execute + # that doesn't mean GRUB-with-SeaBIOS will, e.g. VGA ROM execution [ "$payload_grub" != "y" ] && [ "$payload_seabios" != "y" ] && \ - [ "${payload_uboot}" != "y" ] && ! check_defconfig "$targetdir" \ - && $err "target '$board' defines no payload" + [ "${payload_uboot}" != "y" ] && \ + $err "target '$board' defines no payload" [ "$payload_uboot" != "n" ] && [ "$payload_uboot" != "y" ] && \ payload_uboot="n" @@ -192,7 +191,6 @@ configure_target() # Override all payload directives with cmdline args [ -z "${_payload}" ] && return 0 - printf "setting payload to: %s\n" "${_payload}" eval "$(setvars "n" payload_grub payload_memtest payload_seabios \ payload_seabios_withgrub payload_uboot payload_grub_withseabios \ payload_seabios_grubonly)" @@ -235,13 +233,9 @@ build_grub_payload() [ -f "$grubelf" ] && return 0 [ -f "src/grub/grub-mkstandalone" ] || x_ ./update trees -b grub - ./src/grub/grub-mkstandalone \ - --grub-mkimage="src/grub/grub-mkimage" \ - -O i386-coreboot \ - -o "elf/grub/grub.elf" \ - -d "src/grub/grub-core/" \ - --fonts= --themes= --locales= \ - --modules="${grub_modules}" \ + ./src/grub/grub-mkstandalone --grub-mkimage="src/grub/grub-mkimage" \ + -O i386-coreboot -o "elf/grub/grub.elf" -d "src/grub/grub-core/" \ + --fonts= --themes= --locales= --modules="${grub_modules}" \ --install-modules="${grub_install_modules}" \ "/boot/grub/grub.cfg=${grubcfgsdir}/config/grub_memdisk.cfg" \ "/boot/grub/grub_default.cfg=${grubcfgsdir}/config/grub.cfg" || \ @@ -255,8 +249,7 @@ build_uboot_payload() ubootelf="${ubdir}/u-boot.elf" [ ! -f "${ubootelf}" ] && [ -f "${ubdir}/u-boot" ] && \ ubootelf="${ubdir}/u-boot" - [ -f "${ubootelf}" ] && return 0 - $err "Can't find u-boot build for board, $board"; + [ -f "${ubootelf}" ] || $err "$board: Can't find u-boot"; return 0 } build_target_mainboard() @@ -281,7 +274,6 @@ build_target_mainboard() done } -# Main ROM building function. This calls all other functions below build_roms() { cbcfg="${1}" @@ -323,7 +315,7 @@ build_seabios_roms() newrom="${romdir}/seabios_${board}_${initmode}_${displaymode}" [ "${initmode}" = "normal" ] && newrom="${romdir}/seabios" \ && newrom="${newrom}_${board}_${initmode}" - x_ moverom "${t}" "${newrom}.rom" + x_ copyrom "${t}" "${newrom}.rom" fi x_ rm -f "${t}" } @@ -387,14 +379,14 @@ build_grub_roms() [ "${initmode}" = "normal" ] && \ newrom="${romdir}/${payload1}_${board}_" && \ newrom="${newrom}${initmode}_${keymap}.rom" - x_ moverom "${tmpgrubrom}" "${newrom}" + x_ copyrom "${tmpgrubrom}" "${newrom}" if [ "${payload_seabios_grubonly}" = "y" ]; then x_ "$cbfstool" "$tmpgrubrom" add \ -f "config/grub/bootorder" -n bootorder -t raw - x_ moverom "$tmpgrubrom" "${newrom%.rom}_grubfirst.rom" + x_ copyrom "$tmpgrubrom" "${newrom%.rom}_grubfirst.rom" x_ "$cbfstool" "$tmpgrubrom" add-int -i 0 \ -n etc/show-boot-menu - x_ moverom "$tmpgrubrom" "${newrom%.rom}_grubonly.rom" + x_ copyrom "$tmpgrubrom" "${newrom%.rom}_grubonly.rom" fi x_ rm -f "${tmpgrubrom}" done @@ -428,7 +420,7 @@ build_uboot_roms() tmprom=$(mkUbootRom "${cbrom}" "fallback/payload") || \ $err "build_uboot_roms $board: could not create tmprom" newrom="${romdir}/uboot_payload_${board}_${initmode}_${displaymode}.rom" - x_ moverom "${tmprom}" "${newrom}" + x_ copyrom "${tmprom}" "${newrom}" x_ rm -f "${tmprom}" } @@ -451,16 +443,14 @@ mkUbootRom() { printf "%s\n" "${tmprom}" } -moverom() +copyrom() { printf "Creating target image: %s\n" "$2" x_ mkdir -p "${2%/*}" x_ cp "$1" "$2" - [ "$xbmk_release" = "y" ] || return 0 - - mksha512sum "${2}" "vendorhashes" - x_ ./vendor inject -r "${2}" -b "$board" -n nuke + [ "$xbmk_release" = "y" ] && mksha512sum "${2}" "vendorhashes" && \ + x_ ./vendor inject -r "${2}" -b "$board" -n nuke; return 0 } main $@ |