diff options
Diffstat (limited to 'include/rom.sh')
-rw-r--r-- | include/rom.sh | 71 |
1 files changed, 34 insertions, 37 deletions
diff --git a/include/rom.sh b/include/rom.sh index f74912af..fdd0787f 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -7,35 +7,25 @@ grubdata="config/data/grub" -mkserprog() +buildser() { - [ "$_f" = "-d" ] && return 0 # dry run - basename -as .h "$serdir/"*.h > "$xbmktmp/ser" || \ - $err "!mk $1 $xbmktmp" - - while read -r sertarget; do - [ "$1" = "pico" ] && x_ cmake -DPICO_BOARD="$sertarget" \ - -DPICO_SDK_PATH="$picosdk" -B "$sersrc/build" "$sersrc" \ - && x_ cmake --build "$sersrc/build" - [ "$1" = "stm32" ] && x_ make -C "$sersrc" \ - libopencm3-just-make BOARD=$sertarget && x_ make -C \ - "$sersrc" BOARD=$sertarget - x_ mkdir -p "bin/serprog_$1" - x_ mv "$serx" "bin/serprog_$1/serprog_$sertarget.${serx##*.}" - done < "$xbmktmp/ser" - - [ "$XBMK_RELEASE" = "y" ] && mkrom_tarball "bin/serprog_$1"; : + [ "$1" = "pico" ] && x_ cmake -DPICO_BOARD="$2" \ + -DPICO_SDK_PATH="$picosdk" -B "$sersrc/build" "$sersrc" && \ + x_ cmake --build "$sersrc/build" + [ "$1" = "stm32" ] && x_ make -C "$sersrc" libopencm3-just-make \ + BOARD=$2 && x_ make -C "$sersrc" BOARD=$2 + x_ mkdir -p "bin/serprog_$1" + x_ mv "$serx" "bin/serprog_$1/serprog_$2.${serx##*.}" } copyps1bios() { - x_ rm -Rf bin/playstation - x_ mkdir -p bin/playstation + remkdir "bin/playstation" x_ cp src/pcsx-redux/src/mips/openbios/openbios.bin bin/playstation printf "MIT License\n\nCopyright (c) 2019-2024 PCSX-Redux authors\n\n" \ - > bin/playstation/COPYING.txt || $err "!pcsx-redux copyright" - cat config/snippet/mit >>bin/playstation/COPYING.txt || $err "!pcsx MIT" + > bin/playstation/COPYING.txt || err "!pcsx-redux copyright" + cat config/snippet/mit >>bin/playstation/COPYING.txt || err "!pcsx MIT" } mkpayload_grub() @@ -56,7 +46,7 @@ mkvendorfiles() [ -z "$mode" ] && $dry cook_coreboot_config check_coreboot_utils "$tree" printf "%s\n" "${version%%-*}" > "$srcdir/.coreboot-version" || \ - $err "!mk $srcdir .coreboot-version" + err "!mk $srcdir .coreboot-version" [ -z "$mode" ] && [ "$target" != "$tree" ] && \ x_ ./mk download "$target"; : } @@ -65,8 +55,8 @@ cook_coreboot_config() { [ -f "$srcdir/.config" ] || return 0 printf "CONFIG_CCACHE=y\n" >> "$srcdir/.config" || \ - $err "$srcdir/.config: Could not enable ccache" - make -C "$srcdir" oldconfig || $err "Could not cook $srcdir/.config"; : + err "$srcdir/.config: Could not enable ccache" + make -C "$srcdir" oldconfig || err "Could not cook $srcdir/.config"; : } check_coreboot_utils() @@ -106,7 +96,7 @@ mkcorebootbin() [ "$payload_uboot_i386" = "y" ] && \ [ "$payload_uboot_amd64" = "y" ] && \ - $err "'$target' enables 32- and 64-bit x86 U-Boot" + err "'$target' enables 32- and 64-bit x86 U-Boot" if [ "$payload_uboot_i386" = "y" ] || \ [ "$payload_uboot_amd64" = "y" ]; then @@ -119,7 +109,7 @@ mkcorebootbin() [ "$payload_uboot" = "y" ] || payload_seabios="y" [ "$payload_grub" = "y" ] && payload_seabios="y" [ "$payload_seabios" = "y" ] && [ "$payload_uboot" = "y" ] && \ - $dry $err "$target: U-Boot(arm64) and SeaBIOS/GRUB both enabled." + $dry err "$target: U-Boot(arm64) and SeaBIOS/GRUB both enabled." [ -z "$grub_scan_disk" ] && grub_scan_disk="nvme ahci ata" @@ -181,7 +171,7 @@ add_grub() _grubname="fallback/payload" cbfs "$tmprom" "$grubelf" "$_grubname" printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" \ - > "$xbmktmp/tmpcfg" || $err "$target: !insert scandisk" + > "$xbmktmp/tmpcfg" || err "$target: !insert scandisk" cbfs "$tmprom" "$xbmktmp/tmpcfg" scan.cfg raw [ "$initmode" != "normal" ] && [ "$displaymode" != "txtmode" ] && \ cbfs "$tmprom" "$grubdata/background/background1280x800.png" \ @@ -193,9 +183,7 @@ mkseagrub() [ "$payload_grubsea" = "y" ] && pname="grub" [ "$payload_grubsea" = "y" ] || \ cbfs "$tmprom" "$grubdata/bootorder" bootorder raw - for keymap in config/data/grub/keymap/*.gkb; do - [ -f "$keymap" ] && cprom "${keymap##*/}"; : - done; : + fx_ cprom x_ find "$grubdata/keymap" -type f -name "*.gkb" } add_uboot() @@ -244,16 +232,25 @@ add_uboot() cprom() { - newrom="bin/$target/${pname}_${target}_$initmode.rom" + cpcmd="cp" + + tmpnew=""; newrom="bin/$target/${pname}_${target}_$initmode.rom" [ -n "$displaymode" ] && newrom="${newrom%.rom}_$displaymode.rom" - [ $# -gt 0 ] && [ "$1" != "seauboot" ] && \ - newrom="${newrom%.rom}_${1%.gkb}.rom" + [ $# -gt 0 ] && [ "${1%.gkb}" != "$1" ] && tmpnew="${1##*/}" && \ + newrom="${newrom%.rom}_${tmpnew%.gkb}.rom" - x_ mkdir -p "bin/$target" - x_ cp "$tmprom" "$newrom" && [ $# -gt 0 ] && [ "$1" != "seauboot" ] && \ - cbfs "$newrom" "config/data/grub/keymap/$1" keymap.gkb raw + irom="$tmprom" + [ $# -lt 1 ] || irom="`mktemp`" || err "!mk irom, $(echo "$@")" + [ $# -gt 0 ] && x_ cp "$tmprom" "$irom" && cpcmd="mv" + + [ $# -gt 0 ] && [ "${1%.gkb}" != "$1" ] && \ + cbfs "$irom" "$grubdata/keymap/$tmpnew" keymap.gkb raw [ $# -gt 0 ] && [ "$1" = "seauboot" ] && \ - cbfs "$newrom" "config/data/grub/bootorder_uboot" bootorder raw; : + cbfs "$irom" "$grubdata/bootorder_uboot" bootorder raw; : + + printf "Creating new %s image: '%s'\n" "$projectname" "$newrom" + x_ mkdir -p "bin/$target" + x_ $cpcmd "$irom" "$newrom" } cbfs() |