From a033510c52a9663337cacb59f669f2935d5e1477 Mon Sep 17 00:00:00 2001 From: Aoran Zeng Date: Thu, 6 Mar 2025 11:17:43 +0800 Subject: [PATCH] Only compile static when CI [GitHub #173] --- Makefile | 56 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 51aa035..7ff6614 100644 --- a/Makefile +++ b/Makefile @@ -9,40 +9,68 @@ # Last Modified : <2025-03-06> # -------------------------------------------------------------- +On-Linux = 0 +On-Windows = 0 +On-macOS = 0 + +ifeq ($(shell uname), Linux) + On-Linux = 1 +endif + +# 只有Windows会定义$(OS)变量 +ifeq ($(OS), Windows_NT) + On-Windows = 1 +endif +#======================= + CFLAGS += -Iinclude -Ilib -# 只有Windows会定义该变量 -ifeq ($(OS), Windows_NT) +ifeq ($(On-Windows), 1) CLANG_FLAGS = -target x86_64-pc-windows-gnu endif + ifeq ($(CC), clang) CFLAGS += $(CLANG_FLAGS) endif -ifeq ($(shell uname), Linux) - CFLAGS += -static -endif -ifdef DEBUG - CFLAGS += -g -endif override WARN += -Wall -Wextra -Wno-unused-variable -Wno-unused-function -Wno-missing-braces -Wno-misleading-indentation \ -Wno-missing-field-initializers -Wno-unused-parameter -Wno-sign-compare _C_Warning_Flags := $(WARN) -Target_Name = chsrc +ifdef DEBUG + CFLAGS += -g +endif + +DEBUGGER = gdb + +STATIC = 0 +#======================= + +Target-Name = chsrc # 由 GitHub Actions 在调用时修改 CI_ARTIFACT_NAME = chsrc -DEBUGGER = gdb +ifeq ($(MAKECMDGOALS), CI) + ifeq ($(On-Linux), 1) + STATIC = 1 + endif +endif #======================= + all: - @$(CC) src/chsrc-main.c $(CFLAGS) $(_C_Warning_Flags) -o $(Target_Name) +ifeq ($(STATIC), 1) +CFLAGS += -static +endif + +all: + @$(CC) src/chsrc-main.c $(CFLAGS) $(_C_Warning_Flags) -o $(Target-Name) @echo; echo Compile done using \'$(CC)\' $(CFLAGS) CI: all - @mv $(Target_Name) $(CI_ARTIFACT_NAME) + @mv $(Target-Name) $(CI_ARTIFACT_NAME) + debug: CFLAGS += -g debug: all @@ -59,10 +87,10 @@ test-fw: @./fw # AUR package 安装时将执行此 target -fastcheck: $(Target_Name) +fastcheck: $(Target-Name) @perl ./test/cli.pl fastcheck -test-cli: $(Target_Name) +test-cli: $(Target-Name) @perl ./test/cli.pl clean: