#!/usr/bin/env bash # Compila Adjustris (jogo de pecas que caem de Dave VanEe "tbsp", CC0) do commit d899e2f com o RGBDS # 0.3.10 (a sintaxe do codigo e de 2017; as versoes novas do RGBDS nao a aceitam). O autor so publica a # ROM no GitHub como release e o repositorio tem o Makefile: o script roda o make dele. # # O RGBDS antigo precisa do Bison para gerar o parser do rgbasm: o script compila o GNU Bison 3.8.2 e o # RGBDS (so rgbasm, rgblink e rgbfix) em artifacts/tools/. # # src/FredGames.Bundler/Builds/build-adjustris.sh # # Saida: artifacts/build/adjustris/adjustris.gb set -euo pipefail BISON=3.8.2 BISON_SHA256=9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2 RGBDS=0.3.10 RGBDS_SHA256=b2b4e7d3454e648cec66fc157c507a890a5df1c777516badbf722ad4762d2f68 COMMIT=d899e2f539c07ac49fd42c055605bf778a2df09d GAME_SHA256=12cfaab7ce27fb6b564ba7b555d7eaca37f8de14ba6a424ce21c136994ee333e ROM_SHA256=9b7bfcd8cec7d85e257c43cc62a9965852d59c9fe94dd9f643de3f225450b58b here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/adjustris" cache="$root/artifacts/build/cache" bison="$root/artifacts/tools/bison-$BISON" rgbds="$root/artifacts/tools/rgbds-$RGBDS" mkdir -p "$cache" fetch() { [ -f "$2" ] || curl -fsSL --retry 4 "$1" -o "$2"; echo "$3 $2" | shasum -a 256 -c -; } fetch "https://ftp.gnu.org/gnu/bison/bison-$BISON.tar.xz" "$cache/bison-$BISON.tar.xz" "$BISON_SHA256" fetch "https://github.com/gbdev/rgbds/archive/refs/tags/v$RGBDS.tar.gz" "$cache/rgbds-$RGBDS.tar.gz" "$RGBDS_SHA256" fetch "https://github.com/tbsp/Adjustris/archive/$COMMIT.tar.gz" "$cache/Adjustris-$COMMIT.tar.gz" "$GAME_SHA256" if [ ! -x "$bison/bin/bison" ]; then rm -rf "$bison" "$bison.src" && mkdir -p "$bison.src" tar -xJf "$cache/bison-$BISON.tar.xz" -C "$bison.src" --strip-components 1 (cd "$bison.src" && ./configure --prefix="$bison" --disable-nls >/dev/null && make -j8 >/dev/null && make install >/dev/null) rm -rf "$bison.src" fi if [ ! -x "$rgbds/rgbasm" ] || [ ! -x "$rgbds/rgblink" ] || [ ! -x "$rgbds/rgbfix" ]; then rm -rf "$rgbds" && mkdir -p "$rgbds" tar -xzf "$cache/rgbds-$RGBDS.tar.gz" -C "$rgbds" --strip-components 1 make -C "$rgbds" YACC="$bison/bin/bison" WARNFLAGS=-w rgbasm rgblink rgbfix >/dev/null 2>&1 fi rm -rf "$out" && mkdir -p "$out/tree" tar -xzf "$cache/Adjustris-$COMMIT.tar.gz" -C "$out/tree" --strip-components 1 LC_ALL=C PATH="$rgbds:$PATH" make -C "$out/tree" >/dev/null 2>&1 cp "$out/tree/adjustris.gb" "$out/" echo "$ROM_SHA256 $out/adjustris.gb" | shasum -a 256 -c -