1DATA_NAME:=monaco
2OSRM_BUILD_DIR?=../../build
3PROFILE_ROOT:=../../profiles
4SCRIPT_ROOT:=../../scripts
5OSRM_EXTRACT:=$(OSRM_BUILD_DIR)/osrm-extract
6OSRM_CONTRACT:=$(OSRM_BUILD_DIR)/osrm-contract
7OSRM_PARTITION:=$(OSRM_BUILD_DIR)/osrm-partition
8OSRM_CUSTOMIZE:=$(OSRM_BUILD_DIR)/osrm-customize
9OSRM_ROUTED:=$(OSRM_BUILD_DIR)/osrm-routed
10POLY2REQ:=$(SCRIPT_ROOT)/poly2req.js
11MD5SUM:=$(SCRIPT_ROOT)/md5sum.js
12TIMER:=$(SCRIPT_ROOT)/timer.js
13PROFILE:=$(PROFILE_ROOT)/car.lua
14
15all: data
16
17data: ch/$(DATA_NAME).osrm.hsgr corech/$(DATA_NAME).osrm.hsgr mld/$(DATA_NAME).osrm.partition
18
19clean:
20	-rm -r $(DATA_NAME).*
21	-rm -r ch corech mld
22
23ch/$(DATA_NAME).osrm: $(DATA_NAME).osrm
24	mkdir -p ch
25	cp $(DATA_NAME).osrm $(DATA_NAME).osrm.* ch/
26
27corech/$(DATA_NAME).osrm: $(DATA_NAME).osrm
28	mkdir -p corech
29	cp $(DATA_NAME).osrm $(DATA_NAME).osrm.* corech/
30
31mld/$(DATA_NAME).osrm: $(DATA_NAME).osrm
32	mkdir -p mld
33	cp $(DATA_NAME).osrm $(DATA_NAME).osrm.* mld/
34
35$(DATA_NAME).osrm: $(DATA_NAME).osm.pbf $(DATA_NAME).poly $(PROFILE) $(OSRM_EXTRACT)
36	@echo "Verifiyng data file integrity..."
37	$(MD5SUM) -c data.md5sum
38	@echo "Running osrm-extract..."
39	$(TIMER) "osrm-extract\t$@" $(OSRM_EXTRACT) $< -p $(PROFILE)
40
41ch/$(DATA_NAME).osrm.hsgr: ch/$(DATA_NAME).osrm $(PROFILE) $(OSRM_CONTRACT)
42	@echo "Running osrm-contract..."
43	$(TIMER) "osrm-contract\t$@" $(OSRM_CONTRACT) $<
44
45corech/$(DATA_NAME).osrm.hsgr: corech/$(DATA_NAME).osrm $(PROFILE) $(OSRM_CONTRACT)
46	@echo "Running osrm-contract..."
47	$(TIMER) "osrm-contract\t$@" $(OSRM_CONTRACT) --core=0.5 $<
48
49mld/$(DATA_NAME).osrm.partition: mld/$(DATA_NAME).osrm $(PROFILE) $(OSRM_PARTITION)
50	@echo "Running osrm-partition..."
51	$(TIMER) "osrm-partition\t$@" $(OSRM_PARTITION) $<
52	$(TIMER) "osrm-customize\t$@" $(OSRM_CUSTOMIZE) $<
53
54$(DATA_NAME).requests: $(DATA_NAME).poly
55	$(POLY2REQ) $(DATA_NAME).poly > $(DATA_NAME).requests
56
57benchmark: data $(DATA_NAME).requests
58	@echo "Running benchmark..."
59	@/bin/sh -c '$(OSRM_ROUTED) --algorithm=CH ch/$(DATA_NAME).osrm > /dev/null & echo "$$!" > osrm-routed.pid'
60	@sleep 1
61	$(TIMER) "queries\tCH" "cat $(DATA_NAME).requests | xargs curl &> /dev/null"
62	@cat osrm-routed.pid | xargs kill
63	@rm osrm-routed.pid
64	@/bin/sh -c '$(OSRM_ROUTED) --algorithm=CoreCH corech/$(DATA_NAME).osrm > /dev/null & echo "$$!" > osrm-routed.pid'
65	@sleep 1
66	$(TIMER) "queries\tCoreCH" "cat $(DATA_NAME).requests | xargs curl &> /dev/null"
67	@cat osrm-routed.pid | xargs kill
68	@rm osrm-routed.pid
69	@/bin/sh -c '$(OSRM_ROUTED) --algorithm=MLD mld/$(DATA_NAME).osrm > /dev/null & echo "$$!" > osrm-routed.pid'
70	@sleep 1
71	$(TIMER) "queries\tMLD" "cat $(DATA_NAME).requests | xargs curl &> /dev/null"
72	@cat osrm-routed.pid | xargs kill
73	@rm osrm-routed.pid
74	@echo "**** timings ***"
75	@cat /tmp/osrm.timings
76	@echo "****************"
77
78checksum:
79	$(MD5SUM) $(DATA_NAME).osm.pbf $(DATA_NAME).poly > data.md5sum
80
81.PHONY: clean checksum benchmark data
82