# Smart LED Demo — Makefile
# PC 模拟编译，无需 STM32 工具链

CC      = gcc
CFLAGS  = -I inc -DAPP_DEBUG_LOG -D_POSIX_C_SOURCE=199309L -Wall -Wextra -std=c99
LDFLAGS =

SRC_DIR   = src
TEST_DIR  = tests
BUILD_DIR = build

SRCS      = $(SRC_DIR)/hal_mock.c \
            $(SRC_DIR)/led_driver.c \
            $(SRC_DIR)/btn_fsm.c \
            $(SRC_DIR)/app_controller.c

.PHONY: all test demo clean

all: test demo

# 自动化测试
test: $(BUILD_DIR)/test_smart_led
	@echo "=== Running automated tests ==="
	@./$(BUILD_DIR)/test_smart_led

$(BUILD_DIR)/test_smart_led: $(TEST_DIR)/test_on_pc.c $(SRCS) | $(BUILD_DIR)
	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)

# 交互模式
demo: $(BUILD_DIR)/smart_led_demo
	@echo "=== Interactive demo ready ==="
	@echo "Run: ./$(BUILD_DIR)/smart_led_demo"

$(BUILD_DIR)/smart_led_demo: $(SRC_DIR)/main.c $(SRCS) | $(BUILD_DIR)
	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)

$(BUILD_DIR):
	mkdir -p $(BUILD_DIR)

clean:
	rm -rf $(BUILD_DIR)
