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