From 8c812e0e1aa4a44ff3971895f5807e02706a04ea Mon Sep 17 00:00:00 2001 From: grintoul <166724814+grintoul1@users.noreply.github.com> Date: Sun, 8 Mar 2026 08:49:26 +0000 Subject: [PATCH] Remove need to run make clean when switching between frlg and emerald (#9406) --- .github/workflows/build.yml | 25 ++++++++++++------------- .gitignore | 1 + Makefile | 1 + map_data_rules.mk | 12 +++++++++--- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32dfac0c4f..3b4a1ea13f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,6 +33,18 @@ jobs: GAME_VERSION: EMERALD run: make -j${nproc} -O all + - name: ROM (Firered) + env: + COMPARE: 0 + run: | + make firered -j${nproc} -O + + - name: ROM (Leafgreen) + env: + COMPARE: 0 + run: | + make leafgreen -j${nproc} -O + - name: Release env: GAME_VERSION: EMERALD @@ -48,19 +60,6 @@ jobs: run: | make -j${nproc} check - - name: ROM (Firered) - env: - COMPARE: 0 - run: | - make clean - make firered -j${nproc} -O - - - name: ROM (Leafgreen) - env: - COMPARE: 0 - run: | - make leafgreen -j${nproc} -O - docs_validate: if: github.actor != 'allcontributors[bot]' runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index 6acae9231f..c586b32b19 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,4 @@ tools/aif2pcm/aif2pcm *.fastSmol *.smolTM __pycache__ +.map_version diff --git a/Makefile b/Makefile index 41335f273c..be29b2ea1e 100644 --- a/Makefile +++ b/Makefile @@ -386,6 +386,7 @@ clean-assets: rm -f $(MID_SUBDIR)/*.s rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc rm -f $(DATA_ASM_SUBDIR)/maps/connections.inc $(DATA_ASM_SUBDIR)/maps/events.inc $(DATA_ASM_SUBDIR)/maps/groups.inc $(DATA_ASM_SUBDIR)/maps/headers.inc $(DATA_SRC_SUBDIR)/map_group_count.h + rm -f .map_version find sound -iname '*.bin' -exec rm {} + find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.smol' -o -iname '*.fastSmol' -o -iname '*.smolTM' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} + diff --git a/map_data_rules.mk b/map_data_rules.mk index 8c071c970c..af2530912d 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -29,11 +29,11 @@ $(MAPS_OUTDIR)/%/header.inc $(MAPS_OUTDIR)/%/events.inc $(MAPS_OUTDIR)/%/connect $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json $(@D) -$(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.inc $(MAPS_OUTDIR)/headers.inc $(INCLUDECONSTS_OUTDIR)/map_groups.h $(DATA_SRC_SUBDIR)/map_group_count.h: $(MAPS_DIR)/map_groups.json $(MAP_JSONS) - @$(MAPJSON) groups $(MAP_VERSION) $^ $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR) +$(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.inc $(MAPS_OUTDIR)/headers.inc $(INCLUDECONSTS_OUTDIR)/map_groups.h $(DATA_SRC_SUBDIR)/map_group_count.h: $(MAPS_DIR)/map_groups.json $(MAP_JSONS) .map_version + @$(MAPJSON) groups $(MAP_VERSION) $(filter-out .map_version,$^) $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR) @echo "$(MAPJSON) groups $(MAP_VERSION) $(MAPS_DIR)/map_groups.json $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR)" -$(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONSTS_OUTDIR)/layouts.h: $(LAYOUTS_DIR)/layouts.json +$(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONSTS_OUTDIR)/layouts.h: $(LAYOUTS_DIR)/layouts.json .map_version $(MAPJSON) layouts $(MAP_VERSION) $< $(LAYOUTS_OUTDIR) $(INCLUDECONSTS_OUTDIR) # Generate constants for map events, which depend on data that's distributed across the map.json files. @@ -41,3 +41,9 @@ $(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONST $(INCLUDECONSTS_OUTDIR)/map_event_ids.h: $(MAP_JSONS) @$(MAPJSON) event_constants emerald $^ $(INCLUDECONSTS_OUTDIR)/map_event_ids.h @echo "$(MAPJSON) event_constants emerald $(INCLUDECONSTS_OUTDIR)/map_event_ids.h" + +.map_version : FORCE + (echo "$(MAP_VERSION)" | cmp $@ -) || echo "$(MAP_VERSION)" > .map_version + +FORCE: +.PHONY : FORCE