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