#!/usr/bin/env bash # Compila Bit Bang (homebrew de Game Boy do StudioGuma; codigo GPL-3.0-or-later, arte e musica CC BY-SA # 4.0) do commit c3ec05d com o GBDK-2020 4.3.0, a versao que o autor cita na pagina do itch.io. O # repositorio traz o hUGEDriver ja compilado (lib/hUGEDriver.lib): e o do release 6.1.1, dominio publico, # cujo fonte hospedamos junto. Servimos esta build, com o fonte exato ao lado do bundle. # # src/FredGames.Bundler/Builds/build-bit-bang.sh # # Saida: artifacts/build/bit-bang/bit_bang.gb set -euo pipefail GBDK=4.3.0 GBDK_SHA256=d8300880ef65e291b226db6c82e116f669aff294f1bea506c41729e8cc86a1f6 COMMIT=c3ec05d47fc187667fb2bd5251bf465dabd7705e GAME_SHA256=dcf6bbaea1f47e118eb4c0c6c19c4d53d9042d99ae86ad5513ef03332161edd5 HUGE_LIB_SHA256=274b00e9dd140f6d9587f52f26a9f9b65b11c60b083121101aaa0b7ad7e306ae here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/bit-bang" cache="$root/artifacts/build/cache" tools="$root/artifacts/tools/gbdk-$GBDK" mkdir -p "$cache" fetch() { [ -f "$2" ] || curl -fsSL --retry 4 "$1" -o "$2"; echo "$3 $2" | shasum -a 256 -c -; } fetch "https://github.com/gbdk-2020/gbdk-2020/releases/download/$GBDK/gbdk-macos-arm64.tar.gz" "$cache/gbdk-$GBDK-macos-arm64.tar.gz" "$GBDK_SHA256" fetch "https://github.com/StudioGuma/bit_bang/archive/$COMMIT.tar.gz" "$cache/bit_bang-$COMMIT.tar.gz" "$GAME_SHA256" if [ ! -x "$tools/bin/lcc" ]; then rm -rf "$tools" && mkdir -p "$tools" tar -xzf "$cache/gbdk-$GBDK-macos-arm64.tar.gz" -C "$tools" --strip-components 1 xattr -dr com.apple.quarantine "$tools" 2>/dev/null || true fi rm -rf "$out" && mkdir -p "$out/tree" tar -xzf "$cache/bit_bang-$COMMIT.tar.gz" -C "$out/tree" --strip-components 1 echo "$HUGE_LIB_SHA256 $out/tree/lib/hUGEDriver.lib" | shasum -a 256 -c - make -C "$out/tree" GBDK_HOME="$tools/" >/dev/null cp "$out/tree/obj/bit_bang.gb" "$out/" shasum -a 256 "$out/bit_bang.gb"