#### Beyond Linux® From Scratch (systemd Edition) - Version 10.1

### Chapter 42. Multimedia Libraries and Drivers

- Prev

  SDL-1.2.15

- Next

  sound-theme-freedesktop-0.8

- Up
- Home

# SDL2-2.0.14

## 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.

This package is known to build and work properly using an LFS-10.1 platform.

### Package Information

- Download (HTTP): http://www.libsdl.org/release/SDL2-2.0.14.tar.gz

- Download MD5 sum: 76ed4e6da9c07bd168b2acd9bfefab1b

- Download size: 5.8 MB

- Estimated disk space required: 178 MB (with docs)

- Estimated build time: 0.4 SBU (using parallelism=4; with docs)

### Additional Downloads

- Required patch (for i686 systems): http://www.linuxfromscratch.org/patches/blfs/10.1/SDL2-2.0.14-opengl_include_fix-1.patch

### SDL2 Dependencies

#### Recommended

libxkbcommon-1.0.3, wayland-protocols-1.20, and Xorg Libraries (if those are not present, the corresponding modules are not built)

#### Optional

ALSA-1.2.2, Doxygen-1.9.1 (to create documentation), ibus-1.5.23, NASM-2.15.05, PulseAudio-14.2, libsamplerate-0.2.1, X Window System, DirectFB, and fcitx

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/sdl

## Installation of SDL2

First, if you are building on a 32-bit i686 system, apply a patch containing a fix for the OpenGL headers and their data types:

    case $(uname -m) in
       i?86) patch -Np1 -i ../SDL2-2.0.14-opengl_include_fix-1.patch ;;
    esac

Install SDL2 by running the following commands:

    ./configure --prefix=/usr &&
    make

If you have Doxygen-1.9.1 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.0.14/html &&
    cp -Rv  docs/output/html/* /usr/share/doc/SDL2-2.0.14/html

## 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 and /usr/share/doc/SDL-2.0.14

### 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

Last updated on 2021-02-21 15:09:04 -0800

- Prev

  SDL-1.2.15

- Next

  sound-theme-freedesktop-0.8

- Up
- Home