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.
SDL2 Dependencies
Recommended
libxkbcommon-1.7.0, wayland-protocols-1.38, and Xorg
Libraries (if those are not present, the corresponding modules
are not built)
Optional
alsa-lib-1.2.13, ibus,
libsamplerate, nasm,
pipewire, PulseAudio-17.0, a window manager or
desktop environment, DirectFB,
fcitx, jack, and sndio
Installation of SDL2
Install SDL2 by running the
following commands:
./configure --prefix=/usr &&
make
If you have doxygen 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.30.9/html &&
cp -Rv docs/output/html/* /usr/share/doc/SDL2-2.30.9/html
32-bit Installation of SDL2
First clean the directory:
make distclean
Install lib32-SDL2 by running the
following commands:
CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
./configure --prefix=/usr \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu &&
make
Now, as the root
user:
make DESTDIR=$PWD/DESTDIR install &&
rm -v DESTDIR/usr/lib32/libSDL2*.a &&
cp -vr DESTDIR/usr/lib32/* /usr/lib32 &&
rm -rf DESTDIR &&
ldconfig
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.30.9
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
|