6464# ======== Compilation Config ==========
6565CFLAGS += -Iinclude -Ilib -Isrc/framework -Isrc/res
6666
67+ Target-Is-Windows = 0
68+ Use-Windows-Resource = 0
69+
6770ifeq ($(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)
6979endif
7080
7181ifeq ($(CC ) , clang)
@@ -150,7 +160,7 @@ build-in-debug-mode:
150160build-in-release-mode : CFLAGS += $(CFLAGS_optimization )
151161build-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 的配置在该文件上方
164174build-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)
169179else
0 commit comments