summaryrefslogtreecommitdiff
path: root/map_data_rules.mk
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2019-03-23 09:39:46 -0500
committerMarcus Huderle <huderlem@gmail.com>2019-03-23 09:39:46 -0500
commit65391a1eb2979dc050dd4a98afea02bb0ef310ea (patch)
treee31a90d0966cec7e8713ead9ca8083d439c8d9b5 /map_data_rules.mk
parenteb48cc2f7eefc1e56c2dcec21c38381b4534b897 (diff)
parentabe56579c107af58e6f3a43968ba2257ff358189 (diff)
Merge remote-tracking branch 'upstream/master' into use_pokeblock
# Conflicts: # src/use_pokeblock.c
Diffstat (limited to 'map_data_rules.mk')
-rwxr-xr-xmap_data_rules.mk31
1 files changed, 31 insertions, 0 deletions
diff --git a/map_data_rules.mk b/map_data_rules.mk
new file mode 100755
index 000000000..0203b383d
--- /dev/null
+++ b/map_data_rules.mk
@@ -0,0 +1,31 @@
+# Map JSON data
+
+MAPS_DIR = $(DATA_ASM_SUBDIR)/maps
+LAYOUTS_DIR = $(DATA_ASM_SUBDIR)/layouts
+
+MAP_DIRS := $(dir $(wildcard $(MAPS_DIR)/*/map.json))
+MAP_CONNECTIONS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/connections.inc,$(MAP_DIRS))
+MAP_EVENTS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/events.inc,$(MAP_DIRS))
+MAP_HEADERS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/header.inc,$(MAP_DIRS))
+
+$(DATA_ASM_BUILDDIR)/maps.o: $(DATA_ASM_SUBDIR)/maps.s $(LAYOUTS_DIR)/layouts.inc $(LAYOUTS_DIR)/layouts_table.inc $(MAPS_DIR)/headers.inc $(MAPS_DIR)/groups.inc $(MAPS_DIR)/connections.inc $(MAP_CONNECTIONS) $(MAP_HEADERS)
+ $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
+$(DATA_ASM_BUILDDIR)/map_events.o: $(DATA_ASM_SUBDIR)/map_events.s $(MAPS_DIR)/events.inc $(MAP_EVENTS)
+ $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
+
+$(MAPS_DIR)/%/header.inc: $(MAPS_DIR)/%/map.json
+ $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json
+$(MAPS_DIR)/%/events.inc: $(MAPS_DIR)/%/header.inc ;
+$(MAPS_DIR)/%/connections.inc: $(MAPS_DIR)/%/events.inc ;
+
+$(MAPS_DIR)/groups.inc: $(MAPS_DIR)/map_groups.json
+ $(MAPJSON) groups emerald $<
+$(MAPS_DIR)/connections.inc: $(MAPS_DIR)/groups.inc ;
+$(MAPS_DIR)/events.inc: $(MAPS_DIR)/connections.inc ;
+$(MAPS_DIR)/headers.inc: $(MAPS_DIR)/events.inc ;
+include/constants/map_groups.h: $(MAPS_DIR)/headers.inc ;
+
+$(LAYOUTS_DIR)/layouts.inc: $(LAYOUTS_DIR)/layouts.json
+ $(MAPJSON) layouts emerald $<
+$(LAYOUTS_DIR)/layouts_table.inc: $(LAYOUTS_DIR)/layouts.inc ;
+include/constants/layouts.h: $(LAYOUTS_DIR)/layouts_table.inc ;