diff --git a/Makefile b/Makefile index bc1164b..3bbafbd 100644 --- a/Makefile +++ b/Makefile @@ -2,16 +2,25 @@ # 构建目标 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: +build: $(TARGET_DIR) @echo "Building for current platform..." - go build -o $(BINARY) + go build -o $(TARGET_DIR)/$(BINARY) # 清理构建产物 clean: @echo "Cleaning build artifacts..." - @rm -f $(BINARY) $(BINARY)-* + @rm -rf $(TARGET_DIR) # 运行测试 test: @@ -19,10 +28,10 @@ test: go test ./... # 多平台构建 -build-all: clean test +build-all: clean test $(TARGET_DIR) @echo "Building for all platforms..." - GOOS=linux GOARCH=amd64 go build -o $(BINARY)-linux-amd64 - GOOS=linux GOARCH=arm64 go build -o $(BINARY)-linux-arm64 - GOOS=windows GOARCH=amd64 go build -o $(BINARY)-windows-amd64.exe - GOOS=darwin GOARCH=amd64 go build -o $(BINARY)-darwin-amd64 - GOOS=darwin GOARCH=arm64 go build -o $(BINARY)-darwin-arm64 \ No newline at end of file + 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) \ No newline at end of file