96 lines
3.4 KiB
Makefile
96 lines
3.4 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 'baihu/internal/constant.Version=$(VERSION)' -X 'baihu/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) .
|
|
|
|
# Docker run
|
|
docker-run:
|
|
docker run -p 8052:8052 $(BINARY)
|
|
|
|
# Docker compose up
|
|
docker-up:
|
|
docker-compose up -d
|
|
|
|
# Docker compose down
|
|
docker-down:
|
|
docker-compose 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"
|