Skip to content

Commit 717b0f9

Browse files
committed
feat(build): 增强Windows支持,动态检测目标机器类型
1 parent 91692d6 commit 717b0f9

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

Makefile

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,18 @@ endif
6464
#======== Compilation Config ==========
6565
CFLAGS += -Iinclude -Ilib -Isrc/framework -Isrc/res
6666

67+
Target-Is-Windows = 0
68+
Use-Windows-Resource = 0
69+
6770
ifeq ($(On-Windows), 1)
6871
CLANG_FLAGS = -target x86_64-pc-windows-gnu
72+
Target-Machine := $(shell $(CC) -dumpmachine 2>nul || echo unknown)
73+
ifneq ($(findstring mingw,$(Target-Machine)),)
74+
Target-Is-Windows = 1
75+
else ifneq ($(findstring windows,$(Target-Machine)),)
76+
Target-Is-Windows = 1
77+
endif
78+
Use-Windows-Resource := $(Target-Is-Windows)
6979
endif
7080

7181
ifeq ($(CC), clang)
@@ -150,7 +160,7 @@ build-in-debug-mode:
150160
build-in-release-mode: CFLAGS += $(CFLAGS_optimization)
151161
build-in-release-mode:
152162
@echo Starting: Build in RELEASE mode: \'$(CC)\' $(CFLAGS) -o $(ReleaseMode-Target-Name)
153-
ifeq ($(On-Windows), 1)
163+
ifeq ($(Use-Windows-Resource), 1)
154164
@if exist src\\res\\chsrc.res del src\\res\\chsrc.res
155165
@windres src\\res\\win_res.rc -O coff -o src\\res\\chsrc.res -Iinclude -Ilib -Isrc\\framework -Isrc\\res
156166
@$(CC) src\\chsrc-main.c src\\res\\chsrc.res $(CFLAGS) $(_C_Warning_Flags) -o $(ReleaseMode-Target-Name)
@@ -163,7 +173,7 @@ endif
163173
# CI release mode 的配置在该文件上方
164174
build-in-ci-release-mode:
165175
@echo Starting: Build in CI-RELEASE mode: \'$(CC)\' $(CFLAGS) -o $(CIReleaseMode-Target-Name)
166-
ifeq ($(On-Windows), 1)
176+
ifeq ($(Use-Windows-Resource), 1)
167177
@windres src\\res\\win_res.rc -O coff -o src\\res\\chsrc.res -Iinclude -Ilib -Isrc\\framework -Isrc\\res
168178
@$(CC) src\\chsrc-main.c src\\res\\chsrc.res $(CFLAGS) $(_C_Warning_Flags) -o $(CIReleaseMode-Target-Name)
169179
else

0 commit comments

Comments
 (0)