Files
codegirl-games/Makefile
T
2026-08-09 14:05:28 -07:00

89 lines
3.0 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.PHONY: shaders-vulkan shaders-d3d12 shaders-metal shaders-all bake toad hello_sprite crowd camera_sandbox clips check test help
help:
@echo "Targets:"
@echo " bake Bake all characters under content/characters/"
@echo " shaders-vulkan Compile SPIR-V into shaders/vulkan/"
@echo " shaders-d3d12 Compile DXIL into shaders/d3d12/ (needs shadercross)"
@echo " shaders-metal Compile MSL into shaders/metal/ (needs shadercross)"
@echo " shaders-all Build all shader backends"
@echo " test Run engine unit tests"
@echo " check Typecheck all examples"
@echo " toad Run the toad example (full demo)"
@echo " hello_sprite Minimal load + draw"
@echo " crowd Many sprites, one Character_Data"
@echo " camera_sandbox Pan camera / Space toggles follow"
@echo " clips Keys 1/2 switch idle/walk"
bake:
./scripts/bake_all.sh
shaders-vulkan:
./scripts/shaders_vulkan.sh
shaders-d3d12:
./scripts/shaders_d3d12.sh
shaders-metal:
./scripts/shaders_metal.sh
shaders-all: shaders-vulkan shaders-d3d12 shaders-metal
test:
odin test engine
check:
odin check examples/toad -collection:pkg=.
odin check examples/hello_sprite -collection:pkg=.
odin check examples/crowd -collection:pkg=.
odin check examples/camera_sandbox -collection:pkg=.
odin check examples/clips -collection:pkg=.
toad:
odin run examples/toad -collection:pkg=.
hello_sprite:
odin run examples/hello_sprite -collection:pkg=.
crowd:
odin run examples/crowd -collection:pkg=.
camera_sandbox:
odin run examples/camera_sandbox -collection:pkg=.
clips:
odin run examples/clips -collection:pkg=.
<<<<<<< Updated upstream
=======
flame-tools:
@if [ ! -x "$(FLAMEGRAPH_DIR)/stackcollapse-perf.pl" ] || [ ! -x "$(FLAMEGRAPH_DIR)/flamegraph.pl" ]; then \
echo "Cloning FlameGraph scripts into $(FLAMEGRAPH_DIR)..."; \
git clone --depth 1 https://github.com/brendangregg/FlameGraph.git "$(FLAMEGRAPH_DIR)"; \
fi
flame-build:
odin build examples/$(FLAME_EXAMPLE) -collection:pkg=. -out:$(FLAME_BIN) -debug -o:speed
flame-record: flame-build
@echo ">>> Profiling ./$(FLAME_BIN) — play for ~1020s under load, then quit the window."
@echo ">>> If perf fails with permissions: sudo sysctl kernel.perf_event_paranoid=1"
perf record -F 99 -g --call-graph dwarf -- ./$(FLAME_BIN)
flame-svg: flame-tools
@test -f perf.data || { echo "No perf.data — run: make flame-record"; exit 1; }
@mkdir -p "$(FLAME_OUT_DIR)"
perf script | "$(FLAMEGRAPH_DIR)/stackcollapse-perf.pl" | "$(FLAMEGRAPH_DIR)/flamegraph.pl" > "$(FLAME_PREFIX).svg"
magick "$(FLAME_PREFIX).svg" "$(FLAME_PREFIX).jpg"
@echo "Wrote $(FLAME_PREFIX).svg and $(FLAME_PREFIX).jpg"
flame-report:
@test -f perf.data || { echo "No perf.data — run: make flame-record"; exit 1; }
@mkdir -p "$(FLAME_OUT_DIR)"
perf report --stdio --no-children > "$(FLAME_PREFIX)-report.txt"
@echo "Wrote $(FLAME_PREFIX)-report.txt"
flame: flame-record flame-svg flame-report
@echo "Artifacts: $(FLAME_PREFIX).{svg,jpg} $(FLAME_PREFIX)-report.txt"
>>>>>>> Stashed changes