From 191f6f39ba481e8236ac73129f68151a81258861 Mon Sep 17 00:00:00 2001 From: xfy Date: Sun, 12 Apr 2026 13:41:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(makefile):=20=E6=B7=BB=E5=8A=A0=20Windows?= =?UTF-8?q?=20=E5=B9=B3=E5=8F=B0=E6=9E=84=E5=BB=BA=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BUILD_TIME 增加错误容忍处理 - GO_VERSION 改用 go env GOVERSION 获取 - 新增 Windows 可执行文件 .exe 扩展名支持 - 构建目标统一使用 $(EXECUTABLE) 变量 Co-Authored-By: Claude Opus 4.6 --- Makefile | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 7b86659..989583c 100644 --- a/Makefile +++ b/Makefile @@ -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)"; \