# 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"