# OpenWrt 自定义 Makefile - TP842N-V3 打印服务器
# 用于集成自定义文件和配置

# 定义变量
CUSTOM_FILES_DIR := files
OUTPUT_DIR := output
TARGET_DEVICE := tl-wr842n-v3

# 默认目标
.PHONY: all clean prepare build

all: prepare build

# 准备自定义文件
prepare:
	@echo "准备自定义文件..."
	@mkdir -p $(CUSTOM_FILES_DIR)/etc/config
	@mkdir -p $(CUSTOM_FILES_DIR)/etc/init.d
	@mkdir -p $(CUSTOM_FILES_DIR)/etc/cups
	@mkdir -p $(CUSTOM_FILES_DIR)/etc/crontabs
	@mkdir -p $(CUSTOM_FILES_DIR)/usr/lib/lua/luci/controller
	@mkdir -p $(CUSTOM_FILES_DIR)/usr/lib/lua/luci/model/cbi
	@mkdir -p $(CUSTOM_FILES_DIR)/etc/uci-defaults
	@chmod +x $(CUSTOM_FILES_DIR)/etc/init.d/*
	@chmod +x $(CUSTOM_FILES_DIR)/etc/uci-defaults/*

# 构建固件
build:
	@echo "开始构建 OpenWrt 固件..."
	@if [ ! -d "openwrt" ]; then \
		echo "错误: openwrt 目录不存在,请先运行 build.sh"; \
		exit 1; \
	fi
	@cd openwrt && \
		cp -r ../$(CUSTOM_FILES_DIR)/* ./files/ 2>/dev/null || true && \
		make -j$$(nproc) V=s
	@echo "构建完成!"

# 清理
clean:
	@echo "清理构建文件..."
	@rm -rf $(OUTPUT_DIR)
	@rm -rf openwrt/files
	@rm -f openwrt/.config.old
	@rm -f openwrt/.config
	@echo "清理完成"

# 复制固件
copy-firmware:
	@echo "复制固件到输出目录..."
	@mkdir -p $(OUTPUT_DIR)
	@find openwrt/bin/targets -name "*sysupgrade.bin" -exec cp {} $(OUTPUT_DIR)/ \; 2>/dev/null || true
	@find openwrt/bin/targets -name "*factory.bin" -exec cp {} $(OUTPUT_DIR)/ \; 2>/dev/null || true
	@ls -la $(OUTPUT_DIR)/
	@echo "固件复制完成"

# 显示帮助
help:
	@echo "OpenWrt TP842N-V3 打印服务器构建系统"
	@echo ""
	@echo "可用目标:"
	@echo "  make prepare      - 准备自定义文件"
	@echo "  make build        - 构建固件"
	@echo "  make clean        - 清理构建文件"
	@echo "  make copy-firmware - 复制固件到输出目录"
	@echo "  make help         - 显示此帮助信息"
	@echo ""
	@echo "快速构建:"
	@echo "  ./build.sh        - 一键构建脚本"
	@echo ""
	@echo "手动构建:"
	@echo "  make prepare && make build && make copy-firmware"