refactor(build): 重构构建系统以使用目标目录结构

修改Makefile以将所有构建产物输出到target目录下的平台特定子目录中
This commit is contained in:
kingecg 2025-07-03 11:32:34 +08:00
parent bb031c55b2
commit fcbf669779
1 changed files with 18 additions and 9 deletions

View File

@ -2,16 +2,25 @@
# 构建目标 # 构建目标
BINARY := gofirewall 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..." @echo "Building for current platform..."
go build -o $(BINARY) go build -o $(TARGET_DIR)/$(BINARY)
# 清理构建产物 # 清理构建产物
clean: clean:
@echo "Cleaning build artifacts..." @echo "Cleaning build artifacts..."
@rm -f $(BINARY) $(BINARY)-* @rm -rf $(TARGET_DIR)
# 运行测试 # 运行测试
test: test:
@ -19,10 +28,10 @@ test:
go test ./... go test ./...
# 多平台构建 # 多平台构建
build-all: clean test build-all: clean test $(TARGET_DIR)
@echo "Building for all platforms..." @echo "Building for all platforms..."
GOOS=linux GOARCH=amd64 go build -o $(BINARY)-linux-amd64 GOOS=linux GOARCH=amd64 go build -o $(TARGET_DIR)/linux/amd64/$(BINARY)
GOOS=linux GOARCH=arm64 go build -o $(BINARY)-linux-arm64 GOOS=linux GOARCH=arm64 go build -o $(TARGET_DIR)/linux/arm64/$(BINARY)
GOOS=windows GOARCH=amd64 go build -o $(BINARY)-windows-amd64.exe GOOS=windows GOARCH=amd64 go build -o $(TARGET_DIR)/windows/amd64/$(BINARY).exe
GOOS=darwin GOARCH=amd64 go build -o $(BINARY)-darwin-amd64 GOOS=darwin GOARCH=amd64 go build -o $(TARGET_DIR)/darwin/amd64/$(BINARY)
GOOS=darwin GOARCH=arm64 go build -o $(BINARY)-darwin-arm64 GOOS=darwin GOARCH=arm64 go build -o $(TARGET_DIR)/darwin/arm64/$(BINARY)