From 00d491a646174a0b00475969675c1e6e60da81df Mon Sep 17 00:00:00 2001
From: yenatch <yenatch@gmail.com>
Date: Fri, 29 Jan 2016 01:01:41 -0500
Subject: [PATCH 1/4] Bump extras for faster scan_includes.

---
 extras | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/extras b/extras
index adbc204d7..9644160b8 160000
--- a/extras
+++ b/extras
@@ -1 +1 @@
-Subproject commit adbc204d741bec7a68c1e6cd67751f226d0347cb
+Subproject commit 9644160b87e706f3a6ae20fe09e9c469f628c06d

From 1176712cfebba527fac1438fdf8ca8b9e643a8e7 Mon Sep 17 00:00:00 2001
From: yenatch <yenatch@gmail.com>
Date: Fri, 29 Jan 2016 01:10:41 -0500
Subject: [PATCH 2/4] Use rgbasm -D instead of extra files for version
 differences.

---
 Makefile           | 10 ++++++----
 crystal11.asm      |  4 ----
 misc/mobile_5c.asm |  2 +-
 wram11.asm         |  3 ---
 4 files changed, 7 insertions(+), 12 deletions(-)
 delete mode 100644 crystal11.asm
 delete mode 100644 wram11.asm

diff --git a/Makefile b/Makefile
index 261b58c24..ccfd36357 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ includes  := $(PYTHON) $(poketools)/scan_includes.py
 
 crystal11_obj := \
 wram11.o \
-crystal11.o \
+main11.o \
 lib/mobile/main.o \
 home.o \
 audio.o \
@@ -42,10 +42,10 @@ misc/crystal_misc.o \
 text/common_text.o \
 gfx/pics.o
 
-all_obj := $(crystal_obj) crystal11.o wram11.o
+all_obj := $(crystal_obj) main11.o wram11.o
 
 # object dependencies
-$(foreach obj, $(all_obj), \
+$(foreach obj, $(crystal_obj), \
 	$(eval $(obj:.o=)_dep := $(shell $(includes) $(obj:.o=.asm))) \
 )
 
@@ -64,7 +64,9 @@ compare: pokecrystal.gbc pokecrystal11.gbc
 	@$(MD5) roms.md5
 
 %.asm: ;
-$(all_obj): $$*.asm $$($$*_dep)
+%11.o: %.asm $$(%_dep)
+	rgbasm -D CRYSTAL11 -o $@ $<
+%.o: %.asm $$(%_dep)
 	rgbasm -o $@ $<
 
 pokecrystal11.gbc: $(crystal11_obj)
diff --git a/crystal11.asm b/crystal11.asm
deleted file mode 100644
index c4c7712e8..000000000
--- a/crystal11.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-CRYSTAL11 = 1
-CORRUPT_TILES = 1
-
-INCLUDE "main.asm"
diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm
index b8710a78a..8ecd35edf 100755
--- a/misc/mobile_5c.asm
+++ b/misc/mobile_5c.asm
@@ -934,7 +934,7 @@ GFX_172f1f:
 INCBIN "gfx/unknown/172f1f.2bpp"
 
 Tilemap_1733af:
-IF DEF(CORRUPT_TILES)
+IF DEF(CRYSTAL11)
 INCBIN "gfx/unknown/1733af_corrupt.tilemap"
 ELSE
 INCBIN "gfx/unknown/1733af.tilemap"
diff --git a/wram11.asm b/wram11.asm
deleted file mode 100644
index 4d3303fd0..000000000
--- a/wram11.asm
+++ /dev/null
@@ -1,3 +0,0 @@
-CRYSTAL11 = 1
-
-INCLUDE "wram.asm"

From 08ac6dfd80000f1cdd449225e4d2cc195e086439 Mon Sep 17 00:00:00 2001
From: yenatch <yenatch@gmail.com>
Date: Fri, 29 Jan 2016 16:24:02 -0500
Subject: [PATCH 3/4] *_crystal.asm files are no longer needed to build crystal
 *.o.

---
 Makefile                       | 28 ++++++++++++++++------------
 data/egg_moves_crystal.asm     |  2 --
 data/evos_attacks_crystal.asm  |  2 --
 engine/credits_crystal.asm     |  2 --
 engine/events_crystal.asm      |  2 --
 includes.asm                   |  1 +
 maps_crystal.asm               |  2 --
 pokecrystal.asm => version.asm |  0
 8 files changed, 17 insertions(+), 22 deletions(-)
 delete mode 100644 data/egg_moves_crystal.asm
 delete mode 100644 data/evos_attacks_crystal.asm
 delete mode 100644 engine/credits_crystal.asm
 delete mode 100644 engine/events_crystal.asm
 delete mode 100644 maps_crystal.asm
 rename pokecrystal.asm => version.asm (100%)

diff --git a/Makefile b/Makefile
index ccfd36357..d458381b2 100644
--- a/Makefile
+++ b/Makefile
@@ -16,12 +16,12 @@ main11.o \
 lib/mobile/main.o \
 home.o \
 audio.o \
-maps_crystal.o \
-engine/events_crystal.o \
-engine/credits_crystal.o \
-data/egg_moves_crystal.o \
-data/evos_attacks_crystal.o \
-data/pokedex/entries_crystal.o \
+maps.o \
+engine/events.o \
+engine/credits.o \
+data/egg_moves.o \
+data/evos_attacks.o \
+data/pokedex/entries.o \
 misc/crystal_misc.o \
 text/common_text.o \
 gfx/pics.o
@@ -32,12 +32,12 @@ main.o \
 lib/mobile/main.o \
 home.o \
 audio.o \
-maps_crystal.o \
-engine/events_crystal.o \
-engine/credits_crystal.o \
-data/egg_moves_crystal.o \
-data/evos_attacks_crystal.o \
-data/pokedex/entries_crystal.o \
+maps.o \
+engine/events.o \
+engine/credits.o \
+data/egg_moves.o \
+data/evos_attacks.o \
+data/pokedex/entries.o \
 misc/crystal_misc.o \
 text/common_text.o \
 gfx/pics.o
@@ -69,6 +69,10 @@ compare: pokecrystal.gbc pokecrystal11.gbc
 %.o: %.asm $$(%_dep)
 	rgbasm -o $@ $<
 
+# This seems to be required because of a filename collision (but not a path collision).
+lib/%.o: lib/%.asm $$(lib/%_dep)
+	rgbasm -o $@ $<
+
 pokecrystal11.gbc: $(crystal11_obj)
 	rgblink -n $*.sym -m $*.map -o $@ $^
 	rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -n 1 -p 0 -r 3 -t PM_CRYSTAL $@
diff --git a/data/egg_moves_crystal.asm b/data/egg_moves_crystal.asm
deleted file mode 100644
index 50fbb1471..000000000
--- a/data/egg_moves_crystal.asm
+++ /dev/null
@@ -1,2 +0,0 @@
-INCLUDE "pokecrystal.asm"
-INCLUDE "data/egg_moves.asm"
diff --git a/data/evos_attacks_crystal.asm b/data/evos_attacks_crystal.asm
deleted file mode 100644
index 22ec9d84c..000000000
--- a/data/evos_attacks_crystal.asm
+++ /dev/null
@@ -1,2 +0,0 @@
-INCLUDE "pokecrystal.asm"
-INCLUDE "data/evos_attacks.asm"
diff --git a/engine/credits_crystal.asm b/engine/credits_crystal.asm
deleted file mode 100644
index 51265434b..000000000
--- a/engine/credits_crystal.asm
+++ /dev/null
@@ -1,2 +0,0 @@
-INCLUDE "pokecrystal.asm"
-INCLUDE "engine/credits.asm"
diff --git a/engine/events_crystal.asm b/engine/events_crystal.asm
deleted file mode 100644
index 56cb7a200..000000000
--- a/engine/events_crystal.asm
+++ /dev/null
@@ -1,2 +0,0 @@
-INCLUDE "pokecrystal.asm"
-INCLUDE "engine/events.asm"
diff --git a/includes.asm b/includes.asm
index 456623d9f..1b3d6bed5 100644
--- a/includes.asm
+++ b/includes.asm
@@ -1,2 +1,3 @@
+INCLUDE "version.asm"
 INCLUDE "contents.asm"
 INCLUDE "constants.asm"
diff --git a/maps_crystal.asm b/maps_crystal.asm
deleted file mode 100644
index 7bb87d329..000000000
--- a/maps_crystal.asm
+++ /dev/null
@@ -1,2 +0,0 @@
-INCLUDE "pokecrystal.asm"
-INCLUDE "maps.asm"
diff --git a/pokecrystal.asm b/version.asm
similarity index 100%
rename from pokecrystal.asm
rename to version.asm

From 36f0bda0b33f5444241f1081b93f63f94a1b046a Mon Sep 17 00:00:00 2001
From: yenatch <yenatch@gmail.com>
Date: Wed, 10 Feb 2016 00:31:32 -0500
Subject: [PATCH 4/4] Use static pattern rules to fix dependencies for objects
 in subdirs.

---
 Makefile | 34 ++++++----------------------------
 1 file changed, 6 insertions(+), 28 deletions(-)

diff --git a/Makefile b/Makefile
index d458381b2..c5fad3779 100644
--- a/Makefile
+++ b/Makefile
@@ -10,22 +10,6 @@ gfx       := $(PYTHON) gfx.py
 includes  := $(PYTHON) $(poketools)/scan_includes.py
 
 
-crystal11_obj := \
-wram11.o \
-main11.o \
-lib/mobile/main.o \
-home.o \
-audio.o \
-maps.o \
-engine/events.o \
-engine/credits.o \
-data/egg_moves.o \
-data/evos_attacks.o \
-data/pokedex/entries.o \
-misc/crystal_misc.o \
-text/common_text.o \
-gfx/pics.o
-
 crystal_obj := \
 wram.o \
 main.o \
@@ -42,11 +26,10 @@ misc/crystal_misc.o \
 text/common_text.o \
 gfx/pics.o
 
-all_obj := $(crystal_obj) main11.o wram11.o
+crystal11_obj := $(crystal_obj:.o=11.o)
 
-# object dependencies
-$(foreach obj, $(crystal_obj), \
-	$(eval $(obj:.o=)_dep := $(shell $(includes) $(obj:.o=.asm))) \
+$(foreach obj, $(crystal_obj:.o=), \
+	$(eval $(obj)_dep := $(shell $(includes) $(obj).asm)) \
 )
 
 
@@ -54,23 +37,18 @@ roms := pokecrystal.gbc
 
 all: $(roms)
 crystal: pokecrystal.gbc
-
 crystal11: pokecrystal11.gbc
 
 clean:
-	rm -f $(roms) $(all_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym)
+	rm -f $(roms) $(crystal_obj) $(crystal11_obj) $(roms:.gbc=.map) $(roms:.gbc=.sym)
 
 compare: pokecrystal.gbc pokecrystal11.gbc
 	@$(MD5) roms.md5
 
 %.asm: ;
-%11.o: %.asm $$(%_dep)
+$(crystal11_obj): %11.o: %.asm $$(%_dep)
 	rgbasm -D CRYSTAL11 -o $@ $<
-%.o: %.asm $$(%_dep)
-	rgbasm -o $@ $<
-
-# This seems to be required because of a filename collision (but not a path collision).
-lib/%.o: lib/%.asm $$(lib/%_dep)
+$(crystal_obj): %.o: %.asm $$(%_dep)
 	rgbasm -o $@ $<
 
 pokecrystal11.gbc: $(crystal11_obj)