Introduction to SDL2
The Simple DirectMedia Layer Version 2 (SDL2 for short) is a cross-platform library designed to make it easy to write multimedia software, such as games and emulators.
Note
Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Package Information
-
Download (HTTP): https://www.libsdl.org/release/SDL2-2.28.5.tar.gz
-
Download MD5 sum: a344eb827a03045c9b399e99af4af13d
-
Download size: 7.1 MB
-
Estimated disk space required: 173 MB (with docs)
-
Estimated build time: 0.5 SBU (using parallelism=4; with docs)
SDL2 Dependencies
Recommended
libxkbcommon-1.6.0, wayland-protocols-1.33, and Xorg Libraries (if those are not present, the corresponding modules are not built)
Optional
ALSA-1.2.7, Doxygen-1.10.0 (to create documentation), ibus-1.5.29, libsamplerate-0.2.2, NASM-2.16.01, pipewire-1.0.1, PulseAudio-17.0, a graphical environment, DirectFB, fcitx, jack, and sndio
Installation of SDL2
Install SDL2 by running the following commands:
./configure --prefix=/usr &&
make
If you have Doxygen-1.10.0 installed and want to build the html documentation, run the following commands:
pushd docs &&
doxygen &&
popd
Note
If you wish to build and run the package regression tests, do not delete the static libraries below until after the tests are built.
Now, as the root
user:
make install &&
rm -v /usr/lib/libSDL2*.a
If you built the documentation, install it as the root
user:
install -v -m755 -d /usr/share/doc/SDL2-2.28.5/html &&
cp -Rv docs/output/html/* /usr/share/doc/SDL2-2.28.5/html
Testing SDL2
If you wish to, test the installation of SDL2 using the included test programs. None of the resulting binaries need to be installed. Issue the following commands to build the test programs:
cd test &&
./configure &&
make
Each of the test programs (they are listed in the README
file in this directory) will need to be run individually. Many of them will need to be manually killed. Additionally, speakers need to be on with the volume at a suitable level.
Command Explanations
rm -v /usr/lib/libSDL2*.a: Normally static libraries can be disabled with a --disable-static
option to configure, but that breaks the build in this package.
--disable-alsa-shared
: This switch disables dynamically loading ALSA shared libraries.
--disable-sdl-dlopen
: This switch disables using dlopen for shared object loading. Loading image backend libraries like libpng dynamically on the fly does not work.
--disable-x11-shared
: This switch disables dynamically loading X11 shared libraries.
Configuring SDL2
Configuration Information
As with most libraries, there is no configuration to do, save that the library directory, i.e., /opt/lib
or /usr/local/lib
should appear in /etc/ld.so.conf
so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root
.
Contents
Installed Program: sdl2-config
Installed Libraries: libSDL2.so
Installed Directories: /usr/include/SDL2, /usr/lib/cmake/SDL2, and /usr/share/doc/SDL-2.28.5
Short Descriptions
sdl2-config
|
determines the compile and linker flags that should be used to compile and link programs that use libSDL2
|
libSDL2.so
|
contains functions that provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D frame buffer across multiple platforms
|