https://github.com/libsdl-org/SDL/blob/main/CLAUDE.md
https://github.com/libsdl-org/SDL/blob/main/AGENTS.md
(same content)
#SDL #SDL3
One common issue I see online is that people don't always have the package for SDL that matches mingw. I see a lot of complaints about the problems but no one has a general solution.
32-bit windows exe:
mingw-w64-i686-gcc
mingw-w64-i686-sdl3
64-bit windows exe:
mingw-w64-x86_64-gcc
mingw-w64-x86_64-sdl3
64-bit windows ucrt (for when your using native windows cmd):
mingw-w64-ucrt-x86_64-gcc
mingw-w64-ucrt-x86_64-sdl3
The most impressive port I’ve seen this year so far: SDL3 for MS-freaking-DOS ❤️
Today I ran into two issues with the SDL3 documentation.
First is the intro to mingw. It guides the user to ucrt. Works great for x86_64 but the i386 libraries don't exist. Compiling with -m32 everything breaks.
So you might as well compile SDL yourself. Great... except you have to know the secret to debloat the executable.
Check this link out for more info:
https://voxelmanip.se/2024/12/14/sdl-lean-and-mean/

As storage space becomes larger and larger even on the most modest of phones and bandwidth is becoming evermore plentiful, software tends to become larger in size over time as the necessity to optimise filesizes decreases. But there are also people who wish to reverse the trend by trying to conserve the amount of space their resulting program becomes through going closer to the metal or finding clever ways to cut down the size of their dependencies. SDL is a library that aims to provide cross-platform low level access to input, audio, graphics and more that will just work across all supported platforms, for games and other multimedia programs. While the library originally had humble beginnings it has since grown with size as new features that while may be useful to some, are not something everyone would utilise when using SDL. Thankfully there are countless build options you can use to control what gets built with SDL but there is also the rather funnily named and undocumented define, by the name of SDL_LEAN_AND_MEAN.
Multiple parties have come together to create a new fairly complete #DOS port of #SDL3 (via #DJGPP)
So some of you might write a "failure to initialize SDL" conditional like this...
if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{ printf("failure"); }
This isn't the right and proper way because SDL_Init returns a boolean.
I thought "Now is a great time to do the right thing."
So I wrote this, went to sleep and lost hours of my life debugging. See if you can spot the problem.
if( SDL_Init( SDL_INIT_VIDEO ))
{ printf("failure"); }
RE: https://mastodon.gamedev.place/@icculus/116343798762228309
and sdl3-sys 0.6.2 (for rust) with SDL 3.4.4 support: https://crates.io/crates/sdl3-sys
I have an important update!
The trick I used to get Make to compile the static libraries for SDL3 without CMake only seems to work for windows.
As per the readme, the linux static sdl3 library does not appear to exist. If you're a linux user like me, you'll probably be used to shared libraries anyway.