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