Skip to content

Commit a47b943

Browse files
authored
Merge branch 'ioquake:main' into fix-win32-build
2 parents f0afbc5 + abc448f commit a47b943

536 files changed

Lines changed: 56233 additions & 12015 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
path: build/*.zip
2222
windows:
2323
name: Windows
24-
runs-on: windows-2019
24+
runs-on: windows-2022
2525
steps:
2626
- uses: actions/checkout@v4
2727
- name: Compile

Makefile

Lines changed: 77 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -274,12 +274,12 @@ BLIBDIR=$(MOUNT_DIR)/botlib
274274
NDIR=$(MOUNT_DIR)/null
275275
UIDIR=$(MOUNT_DIR)/ui
276276
Q3UIDIR=$(MOUNT_DIR)/q3_ui
277-
JPDIR=$(MOUNT_DIR)/jpeg-8c
278-
OGGDIR=$(MOUNT_DIR)/libogg-1.3.3
279-
VORBISDIR=$(MOUNT_DIR)/libvorbis-1.3.6
280-
OPUSDIR=$(MOUNT_DIR)/opus-1.2.1
281-
OPUSFILEDIR=$(MOUNT_DIR)/opusfile-0.9
282-
ZDIR=$(MOUNT_DIR)/zlib
277+
JPDIR=$(MOUNT_DIR)/jpeg-9f
278+
OGGDIR=$(MOUNT_DIR)/libogg-1.3.6
279+
VORBISDIR=$(MOUNT_DIR)/libvorbis-1.3.7
280+
OPUSDIR=$(MOUNT_DIR)/opus-1.5.2
281+
OPUSFILEDIR=$(MOUNT_DIR)/opusfile-0.12
282+
ZDIR=$(MOUNT_DIR)/zlib-1.3.1
283283
TOOLSDIR=$(MOUNT_DIR)/tools
284284
Q3ASMDIR=$(MOUNT_DIR)/tools/asm
285285
LBURGDIR=$(MOUNT_DIR)/tools/lcc/lburg
@@ -361,8 +361,8 @@ ifneq (,$(findstring "$(COMPILE_PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu
361361
endif
362362

363363
ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu"))
364-
BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
365-
-pipe -DUSE_ICON -DARCH_STRING=\\\"$(ARCH)\\\"
364+
WARNINGS_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
365+
BASE_CFLAGS = -pipe -DUSE_ICON -DARCH_STRING=\\\"$(ARCH)\\\"
366366
CLIENT_CFLAGS += $(SDL_CFLAGS)
367367

368368
OPTIMIZEVM = -O3
@@ -689,8 +689,8 @@ ifdef MINGW
689689
$(error Cannot find a suitable cross compiler for $(PLATFORM))
690690
endif
691691

692-
BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
693-
-DUSE_ICON
692+
WARNINGS_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
693+
BASE_CFLAGS = -DUSE_ICON
694694

695695
# In the absence of wspiapi.h, require Windows XP or later
696696
ifeq ($(shell test -e $(CMDIR)/wspiapi.h; echo $$?),1)
@@ -818,9 +818,8 @@ ifeq ($(PLATFORM),freebsd)
818818
TOOLS_CC=cc
819819

820820
# flags
821-
BASE_CFLAGS = \
822-
-Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
823-
-DUSE_ICON -DMAP_ANONYMOUS=MAP_ANON
821+
WARNINGS_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
822+
BASE_CFLAGS = -DUSE_ICON -DMAP_ANONYMOUS=MAP_ANON
824823
CLIENT_CFLAGS += $(SDL_CFLAGS)
825824
HAVE_VM_COMPILED = true
826825

@@ -873,8 +872,8 @@ else # ifeq freebsd
873872

874873
ifeq ($(PLATFORM),openbsd)
875874

876-
BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
877-
-pipe -DUSE_ICON -DMAP_ANONYMOUS=MAP_ANON
875+
WARNINGS_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
876+
BASE_CFLAGS = -pipe -DUSE_ICON -DMAP_ANONYMOUS=MAP_ANON
878877
CLIENT_CFLAGS += $(SDL_CFLAGS)
879878

880879
OPTIMIZEVM = -O3
@@ -956,7 +955,8 @@ ifeq ($(PLATFORM),netbsd)
956955
SHLIBLDFLAGS=-shared $(LDFLAGS)
957956
THREAD_LIBS=-lpthread
958957

959-
BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
958+
WARNINGS_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
959+
BASE_CFLAGS =
960960

961961
ifeq ($(ARCH),x86)
962962
HAVE_VM_COMPILED=true
@@ -1012,8 +1012,8 @@ ifeq ($(PLATFORM),sunos)
10121012
endif
10131013
endif
10141014

1015-
BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
1016-
-pipe -DUSE_ICON
1015+
WARNINGS_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes
1016+
BASE_CFLAGS = -pipe -DUSE_ICON
10171017
CLIENT_CFLAGS += $(SDL_CFLAGS)
10181018

10191019
OPTIMIZEVM = -O3 -funroll-loops
@@ -1136,6 +1136,8 @@ ifndef CC
11361136
CC=gcc
11371137
endif
11381138

1139+
CC_VERSION=$(shell $(CC) --version | head -n1)
1140+
11391141
ifndef RANLIB
11401142
RANLIB=ranlib
11411143
endif
@@ -1397,10 +1399,10 @@ ifdef SOURCE_DATE_EPOCH
13971399
endif
13981400

13991401
BASE_CFLAGS += -DPRODUCT_VERSION=\\\"$(VERSION)\\\"
1400-
BASE_CFLAGS += -Wformat=2 -Wno-format-zero-length -Wformat-security -Wno-format-nonliteral
1401-
BASE_CFLAGS += -Wstrict-aliasing=2 -Wmissing-format-attribute
1402-
BASE_CFLAGS += -Wdisabled-optimization
1403-
BASE_CFLAGS += -Werror-implicit-function-declaration
1402+
WARNINGS_CFLAGS += -Wformat=2 -Wno-format-zero-length -Wformat-security \
1403+
-Wno-format-nonliteral -Wstrict-aliasing=2 -Wmissing-format-attribute \
1404+
-Wdisabled-optimization -Werror-implicit-function-declaration
1405+
THIRDPARTY_CFLAGS += -Wno-strict-prototypes
14041406

14051407
ifeq ($(V),1)
14061408
echo_cmd=@:
@@ -1412,22 +1414,32 @@ endif
14121414

14131415
define DO_CC
14141416
$(echo_cmd) "CC $<"
1415-
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -o $@ -c $<
1417+
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) $(WARNINGS_CFLAGS) -o $@ -c $<
1418+
endef
1419+
1420+
define DO_THIRDPARTY_CC
1421+
$(echo_cmd) "THIRDPARTY_CC $<"
1422+
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) $(THIRDPARTY_CFLAGS) -o $@ -c $<
14161423
endef
14171424

14181425
define DO_CC_ALTIVEC
14191426
$(echo_cmd) "CC $<"
1420-
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) $(ALTIVEC_CFLAGS) -o $@ -c $<
1427+
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) $(WARNINGS_CFLAGS) $(ALTIVEC_CFLAGS) -o $@ -c $<
14211428
endef
14221429

14231430
define DO_REF_CC
14241431
$(echo_cmd) "REF_CC $<"
1425-
$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) -o $@ -c $<
1432+
$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) $(WARNINGS_CFLAGS) -o $@ -c $<
1433+
endef
1434+
1435+
define DO_THIRDPARTY_REF_CC
1436+
$(echo_cmd) "THIRDPARTY_REF_CC $<"
1437+
$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) $(THIRDPARTY_CFLAGS) -o $@ -c $<
14261438
endef
14271439

14281440
define DO_REF_CC_ALTIVEC
14291441
$(echo_cmd) "REF_CC $<"
1430-
$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) $(ALTIVEC_CFLAGS) -o $@ -c $<
1442+
$(Q)$(CC) $(SHLIBCFLAGS) $(CFLAGS) $(CLIENT_CFLAGS) $(OPTIMIZE) $(WARNINGS_CFLAGS) $(ALTIVEC_CFLAGS) -o $@ -c $<
14311443
endef
14321444

14331445
define DO_REF_STR
@@ -1438,7 +1450,7 @@ endef
14381450

14391451
define DO_BOT_CC
14401452
$(echo_cmd) "BOT_CC $<"
1441-
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(BOTCFLAGS) $(OPTIMIZE) -DBOTLIB -o $@ -c $<
1453+
$(Q)$(CC) $(NOTSHLIBCFLAGS) $(CFLAGS) $(BOTCFLAGS) $(OPTIMIZE) $(WARNINGS_CFLAGS) -DBOTLIB -o $@ -c $<
14421454
endef
14431455

14441456
ifeq ($(GENERATE_DEPENDENCIES),1)
@@ -1447,49 +1459,49 @@ endif
14471459

14481460
define DO_SHLIB_CC
14491461
$(echo_cmd) "SHLIB_CC $<"
1450-
$(Q)$(CC) $(BASEGAME_CFLAGS) $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
1462+
$(Q)$(CC) $(BASEGAME_CFLAGS) $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) $(WARNINGS_CFLAGS) -o $@ -c $<
14511463
$(Q)$(DO_QVM_DEP)
14521464
endef
14531465

14541466
define DO_GAME_CC
14551467
$(echo_cmd) "GAME_CC $<"
1456-
$(Q)$(CC) $(BASEGAME_CFLAGS) -DQAGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
1468+
$(Q)$(CC) $(BASEGAME_CFLAGS) -DQAGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) $(WARNINGS_CFLAGS) -o $@ -c $<
14571469
$(Q)$(DO_QVM_DEP)
14581470
endef
14591471

14601472
define DO_CGAME_CC
14611473
$(echo_cmd) "CGAME_CC $<"
1462-
$(Q)$(CC) $(BASEGAME_CFLAGS) -DCGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
1474+
$(Q)$(CC) $(BASEGAME_CFLAGS) -DCGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) $(WARNINGS_CFLAGS) -o $@ -c $<
14631475
$(Q)$(DO_QVM_DEP)
14641476
endef
14651477

14661478
define DO_UI_CC
14671479
$(echo_cmd) "UI_CC $<"
1468-
$(Q)$(CC) $(BASEGAME_CFLAGS) -DUI $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
1480+
$(Q)$(CC) $(BASEGAME_CFLAGS) -DUI $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) $(WARNINGS_CFLAGS) -o $@ -c $<
14691481
$(Q)$(DO_QVM_DEP)
14701482
endef
14711483

14721484
define DO_SHLIB_CC_MISSIONPACK
14731485
$(echo_cmd) "SHLIB_CC_MISSIONPACK $<"
1474-
$(Q)$(CC) $(MISSIONPACK_CFLAGS) $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
1486+
$(Q)$(CC) $(MISSIONPACK_CFLAGS) $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) $(WARNINGS_CFLAGS) -o $@ -c $<
14751487
$(Q)$(DO_QVM_DEP)
14761488
endef
14771489

14781490
define DO_GAME_CC_MISSIONPACK
14791491
$(echo_cmd) "GAME_CC_MISSIONPACK $<"
1480-
$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DQAGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
1492+
$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DQAGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) $(WARNINGS_CFLAGS) -o $@ -c $<
14811493
$(Q)$(DO_QVM_DEP)
14821494
endef
14831495

14841496
define DO_CGAME_CC_MISSIONPACK
14851497
$(echo_cmd) "CGAME_CC_MISSIONPACK $<"
1486-
$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DCGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
1498+
$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DCGAME $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) $(WARNINGS_CFLAGS) -o $@ -c $<
14871499
$(Q)$(DO_QVM_DEP)
14881500
endef
14891501

14901502
define DO_UI_CC_MISSIONPACK
14911503
$(echo_cmd) "UI_CC_MISSIONPACK $<"
1492-
$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DUI $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) -o $@ -c $<
1504+
$(Q)$(CC) $(MISSIONPACK_CFLAGS) -DUI $(SHLIBCFLAGS) $(CFLAGS) $(OPTIMIZEVM) $(WARNINGS_CFLAGS) -o $@ -c $<
14931505
$(Q)$(DO_QVM_DEP)
14941506
endef
14951507

@@ -1500,7 +1512,12 @@ endef
15001512

15011513
define DO_DED_CC
15021514
$(echo_cmd) "DED_CC $<"
1503-
$(Q)$(CC) $(NOTSHLIBCFLAGS) -DDEDICATED $(CFLAGS) $(SERVER_CFLAGS) $(OPTIMIZE) -o $@ -c $<
1515+
$(Q)$(CC) $(NOTSHLIBCFLAGS) -DDEDICATED $(CFLAGS) $(SERVER_CFLAGS) $(OPTIMIZE) $(WARNINGS_CFLAGS) -o $@ -c $<
1516+
endef
1517+
1518+
define DO_THIRDPARTY_DED_CC
1519+
$(echo_cmd) "THIRDPARTY_DED_CC $<"
1520+
$(Q)$(CC) $(NOTSHLIBCFLAGS) -DDEDICATED $(CFLAGS) $(SERVER_CFLAGS) $(OPTIMIZE) $(THIRDPARTY_CFLAGS) -o $@ -c $<
15041521
endef
15051522

15061523
define DO_WINDRES
@@ -1583,6 +1600,7 @@ targets: makedirs
15831600
@echo " HAVE_VM_COMPILED: $(HAVE_VM_COMPILED)"
15841601
@echo " PKG_CONFIG: $(PKG_CONFIG)"
15851602
@echo " CC: $(CC)"
1603+
@echo " CC_VERSION: $(CC_VERSION)"
15861604
ifeq ($(PLATFORM),mingw32)
15871605
@echo " WINDRES: $(WINDRES)"
15881606
endif
@@ -2194,6 +2212,7 @@ Q3OBJ += \
21942212
$(B)/client/opus/opus_multistream_encoder.o \
21952213
$(B)/client/opus/opus_multistream_decoder.o \
21962214
$(B)/client/opus/repacketizer.o \
2215+
$(B)/client/opus/extensions.o \
21972216
\
21982217
$(B)/client/opus/bands.o \
21992218
$(B)/client/opus/celt.o \
@@ -2901,28 +2920,34 @@ $(B)/client/%.o: $(BLIBDIR)/%.c
29012920
$(DO_BOT_CC)
29022921

29032922
$(B)/client/%.o: $(OGGDIR)/src/%.c
2904-
$(DO_CC)
2923+
$(DO_THIRDPARTY_CC)
29052924

29062925
$(B)/client/vorbis/%.o: $(VORBISDIR)/lib/%.c
2907-
$(DO_CC)
2926+
$(DO_THIRDPARTY_CC)
29082927

29092928
$(B)/client/opus/%.o: $(OPUSDIR)/src/%.c
2910-
$(DO_CC)
2929+
$(DO_THIRDPARTY_CC)
29112930

29122931
$(B)/client/opus/%.o: $(OPUSDIR)/celt/%.c
2913-
$(DO_CC)
2932+
$(DO_THIRDPARTY_CC)
29142933

29152934
$(B)/client/opus/%.o: $(OPUSDIR)/silk/%.c
2916-
$(DO_CC)
2935+
$(DO_THIRDPARTY_CC)
29172936

29182937
$(B)/client/opus/%.o: $(OPUSDIR)/silk/float/%.c
2919-
$(DO_CC)
2938+
$(DO_THIRDPARTY_CC)
29202939

29212940
$(B)/client/%.o: $(OPUSFILEDIR)/src/%.c
2922-
$(DO_CC)
2941+
$(DO_THIRDPARTY_CC)
29232942

29242943
$(B)/client/%.o: $(ZDIR)/%.c
2925-
$(DO_CC)
2944+
$(DO_THIRDPARTY_CC)
2945+
2946+
$(B)/client/ioapi.o: $(CMDIR)/ioapi.c
2947+
$(DO_THIRDPARTY_CC)
2948+
2949+
$(B)/client/unzip.o: $(CMDIR)/unzip.c
2950+
$(DO_THIRDPARTY_CC)
29262951

29272952
$(B)/client/%.o: $(SDLDIR)/%.c
29282953
$(DO_CC)
@@ -2944,7 +2969,7 @@ $(B)/renderergl1/%.o: $(SDLDIR)/%.c
29442969
$(DO_REF_CC)
29452970

29462971
$(B)/renderergl1/%.o: $(JPDIR)/%.c
2947-
$(DO_REF_CC)
2972+
$(DO_THIRDPARTY_REF_CC)
29482973

29492974
$(B)/renderergl1/%.o: $(RCOMMONDIR)/%.c
29502975
$(DO_REF_CC)
@@ -2982,7 +3007,13 @@ $(B)/ded/%.o: $(CMDIR)/%.c
29823007
$(DO_DED_CC)
29833008

29843009
$(B)/ded/%.o: $(ZDIR)/%.c
2985-
$(DO_DED_CC)
3010+
$(DO_THIRDPARTY_DED_CC)
3011+
3012+
$(B)/ded/ioapi.o: $(CMDIR)/ioapi.c
3013+
$(DO_THIRDPARTY_CC)
3014+
3015+
$(B)/ded/unzip.o: $(CMDIR)/unzip.c
3016+
$(DO_THIRDPARTY_CC)
29863017

29873018
$(B)/ded/%.o: $(BLIBDIR)/%.c
29883019
$(DO_BOT_CC)

code/botlib/l_precomp.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,8 @@ int PC_StringizeTokens(token_t *tokens, token_t *token)
468468
strcat(token->string, "\"");
469469
for (t = tokens; t; t = t->next)
470470
{
471-
strncat(token->string, t->string, MAX_TOKEN - strlen(token->string) - 1);
471+
snprintf(token->string + strlen(token->string),
472+
MAX_TOKEN - strlen(token->string), "%s", t->string);
472473
} //end for
473474
strncat(token->string, "\"", MAX_TOKEN - strlen(token->string) - 1);
474475
return qtrue;

0 commit comments

Comments
 (0)