.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)