.PHONY: validate test test-frontend dev dev-lan can-protocol-generate can-protocol-check can-read-trans can-read-trans-test

CAN_READ_TRANS_BUILD_DIR ?= build/can_read_trans
CAN_READ_TRANS_CANFD_ROOT ?= /home/orin/project511/project-code/canfd
TEST_PYTHONPATH := src:domains/_template/src:domains/ambient_light/src:domains/climate/src:domains/roof/src:domains/seat/src

can-protocol-generate:
	python tools/generate_can_semantic_protocol.py

can-protocol-check:
	python tools/generate_can_semantic_protocol.py --check

validate: can-protocol-check
	python tools/validate_repository.py

test-frontend:
	python tools/run_node.py --test tests/unit/assistant_stream_runtime.test.cjs
	python tools/run_node.py --test tests/unit/speech_input_runtime.test.cjs
	python -m pytest tests/unit/test_energy_monitor_frontend_contract.py -q

test: can-protocol-check test-frontend
	PYTHONPATH=$(TEST_PYTHONPATH)$${PYTHONPATH:+:$${PYTHONPATH}} python -m pytest

dev:
	PYTHONPATH=src:domains/seat/src python -m cognitive_agent.server

dev-lan:
	PYTHONPATH=src:domains/seat/src python -m cognitive_agent.server --host 0.0.0.0

can-read-trans: can-protocol-generate
	cmake -S tools/can_read_trans -B $(CAN_READ_TRANS_BUILD_DIR) \
		-DCMAKE_BUILD_TYPE=Release \
		-DCANFD_ROOT=$(CAN_READ_TRANS_CANFD_ROOT)
	cmake --build $(CAN_READ_TRANS_BUILD_DIR) --parallel

can-read-trans-test: can-read-trans
	ctest --test-dir $(CAN_READ_TRANS_BUILD_DIR) --output-on-failure
