diff options
-rwxr-xr-x | .github/calcrom/calcrom.pl (renamed from .travis/calcrom/calcrom.pl) | 0 | ||||
-rwxr-xr-x | .github/calcrom/webhook.sh (renamed from .travis/calcrom/webhook.sh) | 0 | ||||
-rw-r--r-- | .github/workflows/build.yml | 105 | ||||
-rw-r--r-- | Makefile | 15 |
4 files changed, 118 insertions, 2 deletions
diff --git a/.travis/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index 1bc8bc74b..1bc8bc74b 100755 --- a/.travis/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl diff --git a/.travis/calcrom/webhook.sh b/.github/calcrom/webhook.sh index 86da74c87..86da74c87 100755 --- a/.travis/calcrom/webhook.sh +++ b/.github/calcrom/webhook.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..2dca9dd59 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,105 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + +jobs: + build: + runs-on: ubuntu-18.04 + steps: + - name: Checkout + uses: actions/checkout@master + + - name: Checkout DE + uses: actions/checkout@master + with: + path: 'build_de' + + - name: Checkout Symbols + uses: actions/checkout@master + with: + path: 'symbols' + ref: symbols + + - name: Install binutils + run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi + # build-essential, git, and libpng-dev are already installed + # gcc-arm-none-eabi is only needed for the modern build + # as an alternative to dkP + + - name: Install agbcc + run: | + git clone https://github.com/pret/agbcc.git + cd agbcc + ./build.sh + ./install.sh ../ + ./install.sh ../build_de + + - name: Compare + run: | + make -j${nproc} compare_ruby + make -j${nproc} compare_ruby_debug + make -j${nproc} compare_ruby_rev1 + make -j${nproc} compare_ruby_rev2 + make -j${nproc} compare_sapphire + make -j${nproc} compare_sapphire_debug + make -j${nproc} compare_sapphire_rev1 + make -j${nproc} compare_sapphire_rev2 + mv *.sym symbols + + - name: Modern + run: | + make -j${nproc} ruby_modern + make -j${nproc} ruby_debug_modern + make -j${nproc} ruby_rev1_modern + make -j${nproc} ruby_rev2_modern + make -j${nproc} sapphire_debug_modern + make -j${nproc} sapphire_modern + make -j${nproc} sapphire_rev1_modern + make -j${nproc} sapphire_rev2_modern + mv *.sym symbols + + - name: German Before + run: | + cd build_de + sh de_before.sh + + - name: German + run: | + cd build_de + make -j${nproc} compare_ruby_de + make -j${nproc} compare_ruby_de_debug + make -j${nproc} compare_ruby_de_rev1 + make -j${nproc} compare_sapphire_de + make -j${nproc} compare_sapphire_de_debug + make -j${nproc} compare_sapphire_de_rev1 + mv *.sym ../symbols + + - name: German Modern + run: | + cd build_de + make -j${nproc} ruby_de_modern + make -j${nproc} ruby_de_debug_modern + make -j${nproc} ruby_de_rev1_modern + make -j${nproc} sapphire_de_modern + make -j${nproc} sapphire_de_debug_modern + make -j${nproc} sapphire_de_rev1_modern + mv *.sym ../symbols + + - name: Webhook + if: ${{ github.event_name == 'push' }} + env: + CALCROM_DISCORD_WEBHOOK_USERNAME: OK + CALCROM_DISCORD_WEBHOOK_AVATAR_URL: https://i.imgur.com/38BQHdd.png + CALCROM_DISCORD_WEBHOOK_URL: ${{ secrets.CALCROM_DISCORD_WEBHOOK_URL }} + run: sh .github/calcrom/webhook.sh pokeruby + + - name: Update symfiles + if: ${{ github.event_name == 'push' }} + uses: EndBug/add-and-commit@v7 + with: + branch: symbols + cwd: "./symbols" + add: "*.sym" @@ -7,6 +7,7 @@ OBJCOPY := $(PREFIX)objcopy CC := $(PREFIX)gcc AS := $(PREFIX)as endif +NM := $(PREFIX)nm include config.mk ifeq ($(OS),Windows_NT) @@ -60,6 +61,7 @@ endif ROM := poke$(BUILD_NAME).gba MAP := $(ROM:%.gba=%.map) +SYM := $(ROM:%.gba=%.sym) BUILD_DIR := build/$(BUILD_NAME) @@ -109,7 +111,7 @@ ALL_BUILDS := ruby ruby_debug ruby_rev1 ruby_rev2 sapphire sapphire_debug sapphi MODERN_BUILDS := $(ALL_BUILDS:%=%_modern) # Available targets -.PHONY: all clean mostlyclean tidy tools $(ALL_BUILDS) +.PHONY: all clean mostlyclean tidy tools syms $(ALL_BUILDS) infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) @@ -144,13 +146,15 @@ $(shell mkdir -p $(SUBDIRS)) AUTO_GEN_TARGETS := -all: $(ROM) +all: $(ROM) $(SYM) ifeq ($(COMPARE),1) @$(SHA1SUM) $(BUILD_NAME).sha1 endif compare: ; @$(MAKE) COMPARE=1 +syms: $(SYM) + mostlyclean: tidy find sound/direct_sound_samples \( -iname '*.bin' \) -exec rm {} + $(RM) $(ALL_OBJECTS) @@ -293,3 +297,10 @@ sound/%.bin: sound/%.aif sound/songs/%.s: sound/songs/%.mid cd $(@D) && ../../$(MID2AGB) $(<F) + +################### +### Symbol file ### +################### + +$(SYM): $(ELF) + $(NM) -SBn $< | uniq | grep -E "^0[2389]" > $@ |