Commit Graph

432 Commits

Author SHA1 Message Date
Tim Angus
0912659484 Move responsibility for defining NO_VM_COMPILED from build system to q_platform.h 2025-08-07 15:10:24 +01:00
Tim Angus
2c91b38899 Simplify VM sources for old architectures 2025-08-07 15:10:24 +01:00
Tim Angus
282bd6513e Move third party code to code/thirdparty 2025-08-02 20:01:03 +01:00
Tim Angus
8976973d3b Move puff.* to renderercommon 2025-08-01 22:36:51 +01:00
Tim Angus
92fb145f43 Merge identical tr_subs.c into renderercommon 2025-08-01 22:36:51 +01:00
Tim Angus
d07bf88ce9 Add USE_ARCHLESS_FILENAMES 2025-08-01 22:36:51 +01:00
Tim Angus
cb11c5e339 Make client.html and Autotools style input file 2025-07-31 11:02:38 +01:00
Tim Angus
b512b786ec Move Linux ARCH_STRING definition out of Makefile 2025-07-29 21:53:21 +01:00
Tim Angus
d2f209fbda Remove USE_LOCAL_HEADERS 2025-07-29 18:12:31 +01:00
Pan7
96fefcb7c9 Replace USE_LOCAL_HEADERS with USE_INTERNAL_* 2025-07-29 17:32:18 +01:00
Tim Angus
7962686d2d Adjust resource path to quake3.ico
I'm aware this probably breaks the MSVC build, but

a) I think it's probably broken already
b) I have good reasons that will hopefully make this a non-issue anyway
2025-07-29 16:26:40 +01:00
J.Ingram
934e7b9372 Call SHGetFolderPathA directly
Removing shfolder.h satisfies MSVC, and calling the function directly makes PFNSHGETFOLDERPATHA unnecessary.
2025-07-29 14:41:57 +01:00
Tim Angus
69ad3699ea Update SDL 2025-07-24 20:29:53 +01:00
Tim Angus
a4d4b1743e Remove macOS ppc support 2025-07-24 18:41:52 +01:00
Tim Angus
1a256983ad Update OpenAL (headers) 2025-07-24 12:23:43 +01:00
Zack Middleton
3d255758ff Fix server compile flags for unzip.c and ioapi.c 2025-07-24 09:41:35 +01:00
Tim Angus
9814f5f42f Implement WinINet based HTTP downloads 2025-07-22 14:57:01 +01:00
Tim Angus
8fb30de7af Disable USE_HTTP on Emscripten 2025-07-22 14:57:01 +01:00
Tim Angus
1cbba07fc3 Add abstract frontend to HTTP support and stop using curl on Windows 2025-07-22 14:57:01 +01:00
Tim Angus
dfa0e23395 Update curl 2025-07-22 14:57:01 +01:00
Tim Angus
2dc5fc674e Add CC_VERSION to info message 2025-07-14 17:42:18 +01:00
Tim Angus
124000104e Treat unzip.c and ioapi.c as third party code 2025-07-14 17:42:18 +01:00
Tim Angus
7095006414 Update libjpeg 2025-07-14 17:42:14 +01:00
Tim Angus
3978a5078e Separate out CFLAGS so that third party code is compiled with warnings disabled 2025-07-14 17:41:53 +01:00
Tim Angus
7af17542d2 Update zlib 2025-07-14 13:17:17 +01:00
Tim Angus
28929ad213 Update xiph.org internal libs 2025-07-13 22:57:32 +01:00
Zack Middleton
c1ab47a764 Rename client-config.json based on CLIENTBIN
Also make viewing client.html directly use client-config.json in the
same directory so it's possible to "live edit" both the files without
having to run make.
2024-06-11 04:40:08 -04:00
Zack Middleton
2660bb4a03 Add support for overriding basegame to web client
List files for multiple games in a single client-config.json file so
that com_basegame argument can pick different game data.

Use ioquake3.html?com_basegame=demoq3 (or tademo) to run the Quake 3 or
Team Arena demo. They require new QVMs from baseq3/missionpack to run.
2024-06-11 04:40:08 -04:00
Zack Middleton
8365ea7ed2 Customize the web client HTML file
Modify the client HTML file when copying it to the build directory to
apply current CLIENTBIN and BASEGAME. It always loads engine/data from
the current directory (no need to try to locate the build directory).
2024-06-11 04:40:08 -04:00
Zack Middleton
e6c0776d98 Allow web client to use unzipped QVMs
Compile the QVMs and automatically uses them when not using --preload-file.
2024-06-11 04:40:08 -04:00
Zack Middleton
41ec9ae05f Make emscripten --preload-file opt-in 2024-06-11 04:40:08 -04:00
Zack Middleton
ab8f7eb0bd Clean up emscripten in Makefile
- Remove emscripten build steps from Makefile (see readme)
- USE_CURL=0 has no effect
- HAVE_VM_COMPILED=false has no effect
- WebGL 1 and 2 are supported by the OpenGL2 renderer
- FULL_ES2 (client-side arrays) isn't needed
- Rename EMSCRIPTENOBJ to GENERATEDTARGETS and separate it from
  TARGETS so it's more readable.
2024-06-11 04:40:08 -04:00
Zack Middleton
b14c5a3d9c Add BUILD_RENDERER_OPENGL1 to disable opengl1
Have emscripten disable BUILD_RENDERER_OPENGL1 instead of hardcoded to
disable opengl1 client.
2024-06-11 04:40:08 -04:00
Zack Middleton
198c92b9f8 Add DEPEND_MAKEFILE to disable rebuild on Makefile edit 2024-06-11 04:40:08 -04:00
James Darpinian
f2169ed0b4 Support debug Emscripten build 2024-06-09 22:10:52 -04:00
James Darpinian
9348dbf643 Silence compiler warnings 2024-06-09 22:10:52 -04:00
James Darpinian
6fe061c36e Fix build when specifying PLATFORM=emscripten manually instead of using emmake 2024-06-09 22:10:52 -04:00
James Darpinian
2765cd5398 Get rid of "Nothing to be done for _.zip" message 2024-06-09 22:10:52 -04:00
James Darpinian
db24dfe13f ioquake3.html replaces Emscripten-generated HTML shell
This enables several things:
* Optionally load pk3 files from a web server at runtime instead of bundling them with Emscripten at build time
* Set command line arguments via URL param
* It's not ugly
2024-06-09 22:10:52 -04:00
James Darpinian
e247b316a7 Rebuild every target if Makefile changes 2024-06-09 22:10:52 -04:00
Zack Middleton
413be19a8d Add -ffast-math for emscripten to match other platforms
Co-authored-by: James Darpinian <jdarpinian@gmail.com>
2024-06-09 22:10:52 -04:00
Zack Middleton
25a680ab6e Allow building for emscripten with "emmake make"
Co-authored-by: James Darpinian <jdarpinian@gmail.com>
2024-06-09 22:10:52 -04:00
Zack Middleton
17cadb5369 Fix using emscripten 3.1.27+
emscripten 3.1.27 reduced the stack size from 5MB to 64KB. This caused
run-time errors: Uncaught RuntimeError: index out of bounds

Co-authored-by: James Darpinian <jdarpinian@gmail.com>
2024-06-09 22:10:52 -04:00
Zack Middleton
6f5c038947 Use BASEGAME for emscripten assets 2024-06-08 23:28:09 -04:00
Zack Middleton
4fc059b940 Fix emscripten build directions 2024-06-07 19:11:40 -04:00
Zack Middleton
f41bd37fde Add minimal emscripten support 2024-06-06 20:51:44 -04:00
rilysh
735d987303 Makefile: fix compilation on FreeBSD 2024-05-18 12:48:44 +01:00
Zack Middleton
78359180a4 Build QVMs even if there is no QVM JIT
The QVM interpreter works on all platforms. If building QVMs is an
issue, that should probably be handled separate from whether there
is a QVM JIT compiler.

This enables building QVMs by default on Linux arm64.
2023-10-22 22:21:07 -04:00
Zack Middleton
819e9830d8 Update macOS UB1 to SDL 2.0.22
Fix crash when scrolling using touchpad on macOS 10.6 (I fixed it
in SDL 2.0.18) and fix failing to start on x86 due to ioq3 SDL dylib
having absolute path instead of "@executable_path/libSDL2-2.0.0.dylib".

SDL 2.24.0 removed macOS 10.6 support (last with x86). Offically at
least, they also dropped x86_64 on macOS 10.7 and 10.8. So ioq3 UB1
is limited to SDL 2.0.22.

- Update x86 and x86_64 to SDL 2.0.22. Compiled with 10.13 SDK as
  10.14 SDK dropped running on older than macOS 10.9 and I ran
  "strip -x" on the libraries. Ad-hoc signed with PyOxidizer rcodesign.
- PPC is still MAN-AT-ARMS' SDL 2.0.1 build but I ran "strip -x"
  on it to reduce the file size.
- ARM64 build was removed from UB1 as UB2 with SDL 2.24.0 should
  be used instead.
2023-02-19 13:08:36 -05:00
Zack Middleton
02a12f2dec Update to SDL 2.24.0 and add separate macOS UB2 dylib
Update mingw and macOS SDL libraries to 2.24.0. (MSVC .lib files and
Xcode project haven't been updated.)

There is now a separate SDL dylib for macOS Universal Binary 1 and 2
because SDL 2.24.0 dropped support for macOS 10.6 (which is last to
support x86). Documentation says SDL 2.24.0 also dropped macOS 10.7
and 10.8 too. So UB2 is now 10.9 or later while 10.5 to 10.8 live in
UB1.

Compiled using osxcross with macOS 11.3 SDK. Ran "strip -x" on Windows
and macOS libraries. Ad-hoc signed dylib using PyOxidizer rcodesign to
fix digest checksums after strip.
2023-02-19 13:08:36 -05:00