BT  ·  2026-06-05

Makefile

 1SHELL := /bin/bash
 2.SHELLFLAGS := -euo pipefail -c
 3
 4GRAPHHOPPER := $(shell command -v graphhopper)
 5
 6build: build-deps
 7	nix build .#rtw
 8.PHONY: build
 9
10release: build-deps
11	VERSION=$$(date +%Y.%m.%d%H%M); \
12	sed -i '/rtw-package = {/,/};/s/version = "[^"]*";/version = "'"$${VERSION}"'";/' flake.nix
13	nix build .#rtw
14.PHONY: release
15
16build-local: build-deps
17	cd server && $(MAKE) build
18.PHONY: build-local
19
20build-deps:
21	cd client && pnpm i --frozen-lockfile
22	cd client && pnpm run build
23	esbuild ./client/src/sw.js --bundle --outfile=./server/pages/static/js/sw.js --minify --format=iife --platform=browser --target=es2015
24	cd server && go tool templ generate
25	cd server && tailwindcss -m --cwd pages/ -i index.css -o static/css/style.css
26.PHONY: build-deps
27
28preview:
29	cd server && $(MAKE) preview
30.PHONY: preview
31
32update-ygo:
33	cd server && go get -u git.kilimanjaro.io/ygo
34	nix flake lock --update-input ygo
35	sed -i 's/vendorHash = "sha256-[^"]*";/vendorHash = lib.fakeHash;/' flake.nix
36	@echo "vendorHash reset to lib.fakeHash. Run 'nix build .#rtw' and copy the 'got:' hash into flake.nix."
37
38.PHONY: update-ygo
39
40check-concurrently:
41	@if ! command -v concurrently >/dev/null 2>&1; then \
42		echo "Error: 'concurrently' not found. Please run 'devenv shell' first." >&2; \
43		exit 1; \
44	fi
45.PHONY: check-concurrently
46
47dev: check-concurrently result/bin/y-sweet
48	@$(MAKE) -s -j 2 dev-parallel
49.PHONY: dev
50
51result/bin/y-sweet:
52	nix build .#y-sweet
53
54dev-client:
55	@cd client && $(MAKE) -s dev
56.PHONY: dev-client
57
58dev-server: build-dev-router
59	@cd server && $(MAKE) -s dev
60.PHONY: dev-server
61
62dev-parallel: dev-client dev-server
63.PHONY: dev-parallel
64
65test:
66	@cd server && $(MAKE) test
67	@cd client && $(MAKE) test
68.PHONY: test
69
70clean:
71	@cd server && $(MAKE) clean
72.PHONY: test
73
74build-dev-router: $(PWD)/osm-data/graphhopper/graph-cache/edges
75.PHONY: build-dev-router
76
77$(PWD)/osm-data/graphhopper/graph-cache/edges:
78	mkdir -p $(PWD)/osm-data/graphhopper
79	mkdir -p /tmp/graphhopper/logs
80	java -Xms5g -Xmx8g -jar $(shell dirname $(GRAPHHOPPER))/graphhopper-web-11.0-SNAPSHOT.jar import $(PWD)/osm-data/nepal-india.yml