.PHONY: benchmark develop develop-release lint play release test test-python test-rust test-stable-retro

PYTHON ?= .venv/bin/python
UV_CACHE_DIR ?= .uv-cache
PYTEST_ARGS ?=
STABLE_RETRO_REPO ?= $(abspath ../stable-retro-turbo)

develop:
	UV_CACHE_DIR=$(UV_CACHE_DIR) $(PYTHON) -m maturin develop

develop-release:
	UV_CACHE_DIR=$(UV_CACHE_DIR) $(PYTHON) -m maturin develop --release

benchmark: develop-release
	$(PYTHON) -m breakout_turbo_env.benchmark

play: develop-release
	$(PYTHON) -m breakout_turbo_env.play

lint:
	$(PYTHON) -m ruff check .
	cargo fmt --check
	cargo clippy --all-targets -- -D warnings

release:
	UV_CACHE_DIR=$(UV_CACHE_DIR) uv sync --frozen --extra dev
	scripts/release.py

test-rust:
	cargo test --lib

test-python:
	$(PYTHON) -m pytest $(PYTEST_ARGS)

test-stable-retro: develop-release
	BREAKOUT_REQUIRE_STABLE_RETRO=1 \
	BREAKOUT_STABLE_RETRO_REPO="$(STABLE_RETRO_REPO)" \
	PYTHONPATH="$(CURDIR)/python:$(STABLE_RETRO_REPO)" \
	$(PYTHON) -m pytest -m stable_retro tests/test_stable_retro_parity.py $(PYTEST_ARGS)

test: test-rust test-python
