feat(makefile): 添加 Windows 平台构建兼容性

- BUILD_TIME 增加错误容忍处理
- GO_VERSION 改用 go env GOVERSION 获取
- 新增 Windows 可执行文件 .exe 扩展名支持
- 构建目标统一使用 $(EXECUTABLE) 变量

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
xfy 2026-04-12 13:41:17 +08:00
parent 5dbede27f8
commit 191f6f39ba

View File

@ -5,8 +5,8 @@ APP_NAME := lolly
VERSION := 0.2.0
GIT_COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
BUILD_TIME := $(shell date -u '+%Y-%m-%d %H:%M:%S UTC')
GO_VERSION := $(shell go version | awk '{print $$3}')
BUILD_TIME := $(shell date -u '+%Y-%m-%d %H:%M:%S UTC' 2>/dev/null || echo "unknown")
GO_VERSION := $(shell go env GOVERSION)
BUILD_PLATFORM := $(shell go env GOOS)/$(shell go env GOARCH)
BUILD_DIR := bin
@ -29,6 +29,13 @@ PERF_ASMFLAGS := -asmflags="-l=4"
# Go 文件
MAIN_PATH := main.go
# Windows 可执行文件扩展名
ifeq ($(OS),Windows_NT)
EXECUTABLE := $(BUILD_DIR)/$(APP_NAME).exe
else
EXECUTABLE := $(BUILD_DIR)/$(APP_NAME)
endif
# 默认目标
.DEFAULT_GOAL := build
@ -41,8 +48,8 @@ build:
@echo "Building $(APP_NAME) with max runtime performance (static)..."
@mkdir -p $(BUILD_DIR)
$(CGO_DISABLE) go build $(LDFLAGS) $(PERF_GCFLAGS) $(PERF_ASMFLAGS) -trimpath \
-o $(BUILD_DIR)/$(APP_NAME) $(MAIN_PATH)
@echo "Performance build complete: $(BUILD_DIR)/$(APP_NAME)"
-o $(EXECUTABLE) $(MAIN_PATH)
@echo "Performance build complete: $(EXECUTABLE)"
# PGO 构建(需先收集 profile静态链接
PGO_PROFILE ?= default.pgo
@ -51,7 +58,7 @@ build-pgo:
@mkdir -p $(BUILD_DIR)
if [ -f $(PGO_PROFILE) ]; then \
$(CGO_DISABLE) go build $(LDFLAGS) $(PERF_GCFLAGS) $(PERF_ASMFLAGS) -trimpath \
-pgo=$(PGO_PROFILE) -o $(BUILD_DIR)/$(APP_NAME) $(MAIN_PATH); \
-pgo=$(PGO_PROFILE) -o $(EXECUTABLE) $(MAIN_PATH); \
echo "PGO build complete using: $(PGO_PROFILE)"; \
else \
echo "PGO profile not found: $(PGO_PROFILE)"; \