#### Beyond Linux® From Scratch (systemd Edition) - Version r13.0-491

### Chapter 25. Graphical Environment Libraries

- Prev

  colord-gtk-0.3.1

- Next

  Freeglut-3.8.0

- Up
- Home

# FLTK-1.4.5

## Introduction to FLTK

FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit. FLTK provides modern GUI functionality and supports 3D graphics via OpenGL and its built-in GLUT emulation libraries used for creating graphical user interfaces for applications.

### 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://github.com/fltk/fltk/releases/download/release-1.4.5/fltk-1.4.5-source.tar.gz

- Download MD5 sum: 8308c6bb9ebc8580807a3834be4fcf54

- Download size: 8.9 MB

- Estimated disk space required: 229 MB (add 104 MB for documentation)

- Estimated build time: 0.4 SBU (Using parallelism=4)

### Additional Downloads

- Optional Documentation: https://github.com/fltk/fltk/releases/download/release-1.4.5/fltk-1.4.5-docs-html.tar.gz

### FLTK Dependencies

#### Required

Xorg Libraries

#### Recommended

GLU-9.0.3, hicolor-icon-theme-0.18, libjpeg-turbo-3.1.4.1, and libpng-1.6.58

#### Optional

alsa-lib-1.2.15.3, desktop-file-utils-0.28, Doxygen-1.17.0, and texlive-20250308 (or install-tl-unx)

## Installation of FLTK

### Note

The tar extraction directory is fltk-1.4.5 and not fltk-1.4.5-source as indicated by the tarball name.

Install FLTK by running the following commands:

    mkdir build &&
    cd    build &&

    cmake -D CMAKE_INSTALL_PREFIX=/usr \
          -D FLTK_BUILD_SHARED_LIBS=ON \
          -D CMAKE_BUILD_TYPE=Release  \
          -G "Ninja" ..                &&
    ninja

If you wish to create the API documentation, issue:

    ninja documentation/html

The tests for the package are interactive. To execute the tests, run bin/test/unittests. In addition, there are about 110 other executable test programs in the `bin/test` directory that can be run individually.

Now, install the package and remove unneeded static libraries. As the `root` user:

    ninja install &&
    rm -vf /usr/lib/libfltk*.a

If you have built the documentation, install it as the `root` user:

    install -vdm 755          /usr/share/doc/fltk-1.4.5 &&
    cp -Rv documentation/html /usr/share/doc/fltk-1.4.5

Otherwise, if you downloaded the optional html documentation, install it as the `root` user:

    install -vdm 755 /usr/share/doc/fltk-1.4.5 &&
    tar -C /usr/share/doc/fltk-1.4.5 --strip-components=4 -xf ../../fltk-1.4.5-docs-html.tar.gz

## Command Explanations

`-D FLTK_BUILD_SHARED_LIBS=ON`: Build and install shared libraries in addition to static ones.

## Contents

Installed Programs: blocks, checkers, fltk-config, fltk-options, fltk-options-shared, fluid, fluid-shared, glpuzzle, and sudoku
Installed Libraries: libfltk.so, libfltk_forms.so, libfltk_gl.so, and libfltk_images.so
Installed Directories: /usr/include/FL, /usr/share/fltk, and /usr/share/doc/fltk-1.4.5 (optional)

### Short Descriptions

blocks | is a FLTK-based block elimination game
checkers | is a FLTK-based version of the game of checkers
fltk-config | is a utility script that can be used to get information about the current version of FLTK that is installed on the system
fltk-options | is a graphical configuration utility for FLTK applications
fltk-options-shared | is a graphical configuration utility for FLTK applications (dynamically linked to shared libfltk libraries)
fluid | is an interactive GUI designer for FLTK
fluid-shared | is an interactive GUI designer for FLTK (dynamically linked to shared libfltk libraries)
glpuzzle | is an implementation of the Klotski game
sudoku | is an implementation of the popular Sudoku game
`libfltk.so` | contains functions that provide an API to implement graphical user interfaces

- Prev

  colord-gtk-0.3.1

- Next

  Freeglut-3.8.0

- Up
- Home