diff --git a/map_data_rules.mk b/map_data_rules.mk index ab68f20360..3244d6e8db 100644 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -36,6 +36,9 @@ $(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONST # Generate files that depends on data that's distributed across the map.json files. # There's a lot of map.json files, so we print an abbreviated output with echo. -$(INCLUDECONSTS_OUTDIR)/map_event_ids.h $(DATA_SRC_SUBDIR)/heal_locations.h: $(MAP_JSONS) +# We're also not using a pattern rule, and we only want this to run once for both targets, +# so we use a separate target 'event_constants'. +$(INCLUDECONSTS_OUTDIR)/map_event_ids.h $(DATA_SRC_SUBDIR)/heal_locations.h: .event_constants ; +.event_constants: $(MAP_JSONS) @$(MAPJSON) event_constants firered $^ $(INCLUDECONSTS_OUTDIR)/map_event_ids.h $(DATA_SRC_SUBDIR)/heal_locations.h @echo "$(MAPJSON) event_constants firered $(INCLUDECONSTS_OUTDIR)/map_event_ids.h $(DATA_SRC_SUBDIR)/heal_locations.h"