SDL2-2.30.11

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]

Note

This may take a while to build. Feel free to do something else while this is building.

SDL2 Dependencies

Recommended

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
[Note]

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

lib32 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

[Note]

Note

Run ./configure --help for a full list of options.

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.

Contents

Installed Program: sdl2-config
Installed Libraries: libSDL2.so
Installed Directories: /usr/include/SDL2 and /usr/lib/cmake/SDL2

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