update
This commit is contained in:
88
Makefile
Normal file
88
Makefile
Normal file
@@ -0,0 +1,88 @@
|
||||
# GoTunnel Makefile
|
||||
|
||||
.PHONY: all build-frontend sync-frontend build-server build-client clean help
|
||||
|
||||
# 默认目标
|
||||
all: build-frontend sync-frontend build-server build-client
|
||||
|
||||
# 构建前端
|
||||
build-frontend:
|
||||
@echo "Building frontend..."
|
||||
cd web && npm ci && npm run build
|
||||
|
||||
# 同步前端到 embed 目录
|
||||
sync-frontend:
|
||||
@echo "Syncing frontend to embed directory..."
|
||||
ifeq ($(OS),Windows_NT)
|
||||
if exist internal\server\app\dist rmdir /s /q internal\server\app\dist
|
||||
xcopy /E /I /Y web\dist internal\server\app\dist
|
||||
else
|
||||
rm -rf internal/server/app/dist
|
||||
cp -r web/dist internal/server/app/dist
|
||||
endif
|
||||
|
||||
# 仅同步(不重新构建前端)
|
||||
sync-only:
|
||||
@echo "Syncing existing frontend build..."
|
||||
ifeq ($(OS),Windows_NT)
|
||||
if exist internal\server\app\dist rmdir /s /q internal\server\app\dist
|
||||
xcopy /E /I /Y web\dist internal\server\app\dist
|
||||
else
|
||||
rm -rf internal/server/app/dist
|
||||
cp -r web/dist internal/server/app/dist
|
||||
endif
|
||||
|
||||
# 构建服务端(当前平台)
|
||||
build-server:
|
||||
@echo "Building server..."
|
||||
go build -ldflags="-s -w" -o gotunnel-server ./cmd/server
|
||||
|
||||
# 构建客户端(当前平台)
|
||||
build-client:
|
||||
@echo "Building client..."
|
||||
go build -ldflags="-s -w" -o gotunnel-client ./cmd/client
|
||||
|
||||
# 构建 Linux ARM64 服务端
|
||||
build-server-linux-arm64: sync-only
|
||||
@echo "Building server for Linux ARM64..."
|
||||
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags="-s -w" -o gotunnel-server-linux-arm64 ./cmd/server
|
||||
|
||||
# 构建 Linux AMD64 服务端
|
||||
build-server-linux-amd64: sync-only
|
||||
@echo "Building server for Linux AMD64..."
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o gotunnel-server-linux-amd64 ./cmd/server
|
||||
|
||||
# 完整构建(包含前端)
|
||||
full-build: build-frontend sync-frontend build-server build-client
|
||||
|
||||
# 开发模式:快速构建(假设前端已构建)
|
||||
dev-build: sync-only build-server
|
||||
|
||||
# 清理构建产物
|
||||
clean:
|
||||
@echo "Cleaning..."
|
||||
ifeq ($(OS),Windows_NT)
|
||||
if exist gotunnel-server del gotunnel-server
|
||||
if exist gotunnel-client del gotunnel-client
|
||||
if exist gotunnel-server.exe del gotunnel-server.exe
|
||||
if exist gotunnel-client.exe del gotunnel-client.exe
|
||||
if exist gotunnel-server-* del gotunnel-server-*
|
||||
if exist gotunnel-client-* del gotunnel-client-*
|
||||
else
|
||||
rm -f gotunnel-server gotunnel-client gotunnel-server-* gotunnel-client-*
|
||||
endif
|
||||
|
||||
# 帮助
|
||||
help:
|
||||
@echo "Available targets:"
|
||||
@echo " all - Build frontend, sync, and build binaries"
|
||||
@echo " build-frontend - Build frontend (npm)"
|
||||
@echo " sync-frontend - Sync web/dist to internal/server/app/dist"
|
||||
@echo " sync-only - Sync without rebuilding frontend"
|
||||
@echo " build-server - Build server for current platform"
|
||||
@echo " build-client - Build client for current platform"
|
||||
@echo " build-server-linux-arm64 - Cross-compile server for Linux ARM64"
|
||||
@echo " build-server-linux-amd64 - Cross-compile server for Linux AMD64"
|
||||
@echo " full-build - Complete build with frontend"
|
||||
@echo " dev-build - Quick build (assumes frontend exists)"
|
||||
@echo " clean - Remove build artifacts"
|
||||
Reference in New Issue
Block a user