Files
TaskPool/Makefile
T
2026-02-06 21:37:35 +08:00

96 lines
3.6 KiB
Makefile

# Variables
BINARY=baihu
GOBUILD=go build
GOCLEAN=go clean
GOGET=go get
GOMOD=go mod
VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
BUILD_TIME=$(shell date '+%Y/%m/%d %H:%M:%S')
LDFLAGS=-ldflags="-s -w -X 'github.com/engigu/baihu-panel/internal/constant.Version=$(VERSION)' -X 'github.com/engigu/baihu-panel/internal/constant.BuildTime=$(BUILD_TIME)'"
# Default target
all: build
# Build frontend
build-web:
cd web && npm ci && npm run build
rm -rf internal/static/dist
cp -r web/dist internal/static/dist
# Build the application (requires frontend to be built first)
build:
CGO_ENABLED=0 $(GOBUILD) $(LDFLAGS) -o $(BINARY) main.go
# Build all (frontend + backend)
build-all: build-web build
# Build agent for all platforms (local development)
build-agent:
@mkdir -p data/agent
@echo "$(VERSION)" > data/agent/version.txt
@echo "Building and packaging agents..."
cd agent && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w -X 'main.Version=$(VERSION)' -X 'main.BuildTime=$(BUILD_TIME)'" -o baihu-agent . && \
tar -czvf ../data/agent/baihu-agent-linux-amd64.tar.gz baihu-agent config.example.ini && rm baihu-agent
cd agent && CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w -X 'main.Version=$(VERSION)' -X 'main.BuildTime=$(BUILD_TIME)'" -o baihu-agent . && \
tar -czvf ../data/agent/baihu-agent-linux-arm64.tar.gz baihu-agent config.example.ini && rm baihu-agent
cd agent && CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w -X 'main.Version=$(VERSION)' -X 'main.BuildTime=$(BUILD_TIME)'" -o baihu-agent.exe . && \
tar -czvf ../data/agent/baihu-agent-windows-amd64.tar.gz baihu-agent.exe config.example.ini && rm baihu-agent.exe
cd agent && CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w -X 'main.Version=$(VERSION)' -X 'main.BuildTime=$(BUILD_TIME)'" -o baihu-agent . && \
tar -czvf ../data/agent/baihu-agent-darwin-amd64.tar.gz baihu-agent config.example.ini && rm baihu-agent
cd agent && CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w -X 'main.Version=$(VERSION)' -X 'main.BuildTime=$(BUILD_TIME)'" -o baihu-agent . && \
tar -czvf ../data/agent/baihu-agent-darwin-arm64.tar.gz baihu-agent config.example.ini && rm baihu-agent
@echo "Agent packages built in data/agent/"
@ls -lh data/agent/*.tar.gz
# Clean built files
clean:
$(GOCLEAN)
rm -f $(BINARY)
rm -rf internal/static/dist
mkdir -p internal/static/dist
touch internal/static/dist/.gitkeep
# Run the application
run:
$(GOBUILD) -o $(BINARY) main.go
./$(BINARY)
# Development run (without embedding frontend)
dev:
$(GOBUILD) -o $(BINARY) main.go
./$(BINARY)
# Install dependencies
deps:
$(GOMOD) tidy
# Docker build
docker-build:
docker build -t $(BINARY) -f docker/Dockerfile .
# Docker run
docker-run:
docker run -p 8052:8052 $(BINARY)
# Docker compose up
docker-up:
docker-compose -f docker/docker-compose.yml up -d
# Docker compose down
docker-down:
docker-compose -f docker/docker-compose.yml down
# Help
help:
@echo "Available targets:"
@echo " all - Build the application (default)"
@echo " build - Build the application"
@echo " build-agent - Build agent packages (tar.gz) for all platforms"
@echo " clean - Clean built files"
@echo " run - Run the application"
@echo " deps - Install dependencies"
@echo " docker-build - Build Docker image"
@echo " docker-run - Run Docker container"
@echo " docker-up - Start Docker Compose stack"
@echo " docker-down - Stop Docker Compose stack"
@echo " help - Show this help message"