37 lines
1.0 KiB
Makefile
37 lines
1.0 KiB
Makefile
.PHONY: clean test build build-all
|
|
|
|
# 构建目标
|
|
BINARY := gofirewall
|
|
TARGET_DIR := target
|
|
|
|
# 创建目标目录
|
|
$(TARGET_DIR):
|
|
@mkdir -p $(TARGET_DIR)/linux/amd64
|
|
# @mkdir -p $(TARGET_DIR)/linux/arm64
|
|
@mkdir -p $(TARGET_DIR)/windows/amd64
|
|
@mkdir -p $(TARGET_DIR)/darwin/amd64
|
|
# @mkdir -p $(TARGET_DIR)/darwin/arm64
|
|
|
|
# 默认构建
|
|
build: $(TARGET_DIR)
|
|
@echo "Building for current platform..."
|
|
go build -o $(TARGET_DIR)/$(BINARY)
|
|
|
|
# 清理构建产物
|
|
clean:
|
|
@echo "Cleaning build artifacts..."
|
|
@rm -rf $(TARGET_DIR)
|
|
|
|
# 运行测试
|
|
test:
|
|
@echo "Running tests..."
|
|
go test ./...
|
|
|
|
# 多平台构建
|
|
build-all: clean test $(TARGET_DIR)
|
|
@echo "Building for all platforms..."
|
|
GOOS=linux GOARCH=amd64 go build -o $(TARGET_DIR)/linux/amd64/$(BINARY)
|
|
# GOOS=linux GOARCH=arm64 go build -o $(TARGET_DIR)/linux/arm64/$(BINARY)
|
|
GOOS=windows GOARCH=amd64 go build -o $(TARGET_DIR)/windows/amd64/$(BINARY).exe
|
|
# GOOS=darwin GOARCH=amd64 go build -o $(TARGET_DIR)/darwin/amd64/$(BINARY)
|
|
# GOOS=darwin GOARCH=arm64 go build -o $(TARGET_DIR)/darwin/arm64/$(BINARY)
|