############################################################
# Makefile (UI Static Library, depends on core/liblvgl.a)
############################################################

# 交叉编译器
CC = aarch64-none-linux-gnu-gcc
AR = aarch64-none-linux-gnu-ar

LVGL_DIR_NAME ?= lvgl
LVGL_DIR ?= ${shell pwd}/core

# ===== 静态库名（替代 lvgl_app）=====
TARGET := libui.a

############################################################
# 编译参数（保持原样）
############################################################
CFLAGS := -I. \
          -I../ \
          -Icore \
          -Icore/lvgl \
          -Icore/lvgl/src \
          -Icore/lvgl_driver \
          -Iui \
          -Icomm \
          -Idata \
          -Iapp \
          -Iapp/components \
          -Iservice \
          -Iui/ui_common \
          -Iui/ui_pages \
          -Iui/ui_theme \
          -Iui/ui_components \
           -O2 -std=gnu99 

############################################################ -Wall
# ⚠️ 注意：这里不再需要 LDFLAGS
# 静态库阶段不做链接
############################################################
# LDFLAGS := -Lcore -llvgl -lm -lpthread

############################################################
# 源文件（保持原逻辑）
############################################################
SRCS := \
    $(wildcard data/*.c) \
    $(wildcard data/menu/*.c) \
    $(wildcard app/*.c) \
    $(wildcard app/*/*.c) \
    $(wildcard comm/*.c) \
    $(wildcard service/*.c) \
    $(wildcard *.c) \
    $(wildcard ui/*.c) \
    $(wildcard ui/ui_common/*.c) \
    $(wildcard ui/ui_pages/*.c) \
    $(wildcard ui/ui_components/*.c) \
    $(wildcard ui/ui_theme/*.c)

# ===== 强烈建议：静态库中不要包含 main.c =====
SRCS := $(filter-out %main.c, $(SRCS))

############################################################
# build/ 目录
############################################################
BUILD_DIR := build
OBJS := $(patsubst %.c,$(BUILD_DIR)/%.o,$(SRCS))
DIRS := $(sort $(dir $(OBJS)))

############################################################
# 主规则
############################################################
all: $(TARGET)

############################################################
# 生成静态库
############################################################
$(TARGET): $(OBJS)
	@echo "AR  $@"
	@$(AR) rcs $@ $^
	@echo "\n==== Build Finished: $(TARGET) ====\n"

############################################################
# 编译 .o
############################################################
$(BUILD_DIR)/%.o: %.c
	@mkdir -p $(dir $@)
	$(CC) $(CFLAGS) -c $< -o $@

############################################################
# 清理
############################################################
clean:
	@echo "Cleaning..."
	@rm -rf $(BUILD_DIR) $(TARGET)
	@echo "Clean done."

############################################################
# 调试
############################################################
print:
	@echo "SRCS:"
	@echo "$(SRCS)"
	@echo
	@echo "OBJS:"
	@echo "$(OBJS)"
