Files
file-transfer-go/Makefile
2025-08-02 13:36:01 +08:00

109 lines
2.8 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Makefile for File Transfer System (Full Stack)
.PHONY: build clean run dev frontend backend fullstack help
# 构建参数
GOCMD=go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean
BINARY_NAME=file-transfer-server
BINARY_UNIX=$(BINARY_NAME)_unix
SCRIPT_DIR=./
# 默认构建 - 完整的前后端
build: fullstack
# 完整的前后端构建SSG + Go嵌入
fullstack:
@echo "🚀 开始全栈构建..."
@$(SCRIPT_DIR)build-fullstack.sh
# 开发模式构建
dev:
@echo "🔧 开发模式构建..."
@$(SCRIPT_DIR)build-fullstack.sh --dev --verbose
# 只构建前端SSG
frontend:
@echo "🎨 构建前端..."
@$(SCRIPT_DIR)build-fullstack.sh --frontend-only
# 只构建后端(需要前端已构建)
backend:
@echo "⚙️ 构建后端..."
@$(SCRIPT_DIR)build-fullstack.sh --backend-only
# 传统 Go 构建(不包含嵌入的前端)
build-go:
@echo "📦 传统 Go 构建..."
$(GOBUILD) -o $(BINARY_NAME) -v ./cmd
# 清理所有构建文件
clean:
@echo "🧹 清理构建文件..."
@$(SCRIPT_DIR)build-fullstack.sh --clean
$(GOCLEAN)
rm -f $(BINARY_NAME)
rm -f $(BINARY_UNIX)
# 运行应用(先构建)
run: build
@echo "🚀 启动应用..."
./$(BINARY_NAME)
# 快速运行(使用现有二进制)
run-quick:
@echo "⚡ 快速启动..."
./$(BINARY_NAME)
# Linux 交叉编译
build-linux:
@echo "🐧 Linux 交叉编译..."
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BINARY_UNIX) -v ./cmd
# 安装依赖
install-deps:
@echo "📦 安装 Go 依赖..."
$(GOCMD) mod download
$(GOCMD) mod tidy
@echo "📦 安装前端依赖..."
cd chuan-next && yarn install
# 检查代码
check:
@echo "🔍 代码检查..."
$(GOCMD) vet ./...
$(GOCMD) fmt ./...
cd chuan-next && yarn lint
# 测试
test:
@echo "🧪 运行测试..."
$(GOCMD) test -v ./...
# 显示帮助
help:
@echo "🛠️ 可用的构建命令:"
@echo ""
@echo "主要命令:"
@echo " make build - 完整构建前端SSG + Go嵌入"
@echo " make dev - 开发模式构建(包含调试信息)"
@echo " make run - 构建并运行应用"
@echo " make clean - 清理所有构建文件"
@echo ""
@echo "分离构建:"
@echo " make frontend - 只构建前端Next.js SSG"
@echo " make backend - 只构建后端(需要前端已构建)"
@echo " make build-go - 传统 Go 构建(不含前端)"
@echo ""
@echo "其他命令:"
@echo " make run-quick - 直接运行现有二进制"
@echo " make build-linux - Linux 交叉编译"
@echo " make install-deps- 安装所有依赖"
@echo " make check - 代码检查和格式化"
@echo " make test - 运行测试"
@echo " make help - 显示此帮助"
@echo ""
@echo "详细构建选项(直接调用脚本):"
@echo " ./build-fullstack.sh --help"