SHELL := /bin/bash .ONESHELL: ESP_ENV := . ~/scripts/esp_env.sh SIM_BUILD := simulator/build PORT ?= /dev/ttyUSB0 # All firmware targets build with DEBUG=1 so serial commands and DBG lines # are always available for testing and monitoring. IDF := $(ESP_ENV) && idf.py -DDEBUG=1 .PHONY: all firmware sim test flash monitor flash-monitor clean firmware-clean sim-clean case case_live case_clean all: firmware sim firmware: $(IDF) build flash: $(IDF) flash monitor: $(IDF) monitor flash-monitor: $(IDF) flash monitor sim: cmake --build $(SIM_BUILD) --parallel test: sim flash sleep 5 $(SIM_BUILD)/test_ble --port $(PORT) clean: firmware-clean sim-clean case_clean firmware-clean: $(IDF) fullclean sim-clean: cmake --build $(SIM_BUILD) --target clean # --- case (build123d) --- CASE_VENV := case/venv CASE_PYTHON := $(CASE_VENV)/bin/python CASE_PIP := $(CASE_VENV)/bin/pip CASE_FW := $(CASE_VENV)/bin/fw123d $(CASE_VENV)/.installed: case/requirements.txt python3.13 -m venv $(CASE_VENV) $(CASE_PIP) install --upgrade pip $(CASE_PIP) install -r case/requirements.txt touch $@ case: $(CASE_VENV)/.installed $(CASE_PYTHON) case/case.py case_live: $(CASE_VENV)/.installed $(CASE_FW) case/case.py case_clean: rm -rf $(CASE_VENV) case/output/*.stl