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:
parent
5dbede27f8
commit
191f6f39ba
17
Makefile
17
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)"; \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user