# Features

Some switches can be used during configuration to enable or disable features of &app;. Some of the most important configuration options are:

- `--enable-gui` lets you specify your GUI of choice. The default option is GTK.

- `--enable-renderer` allows a renderer to be chosen. The default renderer is AGG.

- `--enable-media` permits a media handler to be selected. The default is auto.

A complete list of available features follows.

## Configuration Options - Features

Option | Function
--- | ---
`--enable-debugger` | Enable support for the Flash debugger. The debugger is mainly of interest to Flash developers, and is still under development.
`--enable-lirc` | Enable support for the LIRC remote control protocol.
`--enable-cygnal` | Build the Cygnal streaming media server.
`--disable-menus` | Disable building all the menus for the GUI. THis is used by mobile devices without as much screen space.
`--enable-docbook` | Enable the generation of HTML, INFO, and MAN versions of the documentation from the Docbook XML. You will then be able to use `make html`, `make info`, and `make man` commands. By default, man,info and html pages are generated.

    --enable-gui=<gui>[,<gui>]...

          gui can be: aos4
    		  aqua
    		  dump
    		  fb
    		  fltk
    		  gtk
    		  haiku
    		  qt3
    		  qt4
    		  sdl

Select the Graphic User Interface to build.

GTK

  The GTK+ toolkit, which is the default GUI. Said to interwork particularly well with firefox.

SDL

  Simple DirectMedia Layer, a simple and portable GUI. Its sound facilities are used when --enable-media=ffmpeg regardless of whether it is also in charge of the GUI.

QT

  An interface adapted to the KDE Desktop Environment. This must be selected when building the Konqueror plugin "klash". Furthermore, the only renderer that currently works with KDE is opengl.

FLTK

  Fast Light ToolKit, low on resource usage. Since all builds using fltk are now broken, we declare it "for developers".

FB

  The Linux Frame Buffer, also known as /dev/fb0. AGG is the only renderer that can currently be used with the framebuffer GUI.

    --enable-media=<handler>[,<handler>]...

          handler can be: ffmpeg
    		      gst
    		      none

Select the specified media decoders. Both ffmpeg and gst use SDL sound engine.

If option is not given and required dependencies are present, it will build both ffmpeg and gst media handlers. Runtime default will be the first in alphabetical order i.e. ffmpeg. See `MediaHandler` gnashrc option.

`--disable-npapi` `--enable-npapi` | Force disable/enable building the NPAPI plugin. By default the Mozilla plugin is built if the GTK gui is selected. Specify the `--with-npapi-plugindir=` option to specify where the plugin should be installed.
`--disable-kparts` `--enable-kparts` | Force disable/enable building the KPARTS plugin. By default the KDE plugin is built if the kde gui is selected. Specify the `--with-kde-plugindir=` and `--with-kde-servicesdir=` options (or more generally the `--with-kde-pluginprefix=` one) to specify where the plugin should be installed. The default installation dir is extracted from kde-config.
`--disable-plugins` | Disable build of both kparts and npapi plugins

    --enable-renderer=<renderer>[,<renderer>]...

          renderer can be: agg
    		       cairo
    		       opengl

Enable support for a graphics backend. Currently only `opengl` and `agg` work sufficiently. Use OpenGL when you have hardware accelerated graphics. Use AGG when you do not have hardware accelerated graphics or when you are building for a wide audience. Typically most desktop machines have OpenGL support, and most embedded systems do not. AGG is the default when building Gnash, although the speed of OpenGL's rendering is currently superior to AGG.

`--enable-sdk-install` | Enable installing the libraries and headers as an SDK.
`--disable-shared` | Enable installing the shared libraries and headers. Note that the extensions mechanism may not work if shared libraries are disabled.
`--enable-strict` | Turn verbose GCC compiler warnings. By default only `-Wall` is used with GCC.
`--enable-fps-debug` | Enable FPS debugging code. When this feature is compiled in you can use the -f switch of &app; to have FPS printed at regular intervals.
`--enable-write` | Makes the Mozilla plugin write the currently playing SWF movie to `/tmp`.
`--disable-sa-launcher` | Drops the NPAPI plugin support for writing a standalone executable launcher script for the currently playing SWF movie to `/tmp`. Note that you'll still need to add a 'writelauncher' string to your GNASH_OPTIONS environment variable for the script to be created, even if the compile-time support is enabled.
`--disable-mit-shm` | Disable support for the MIT-SHM X extensions. Currently support is only available using GTK gui and AGG renderer. Keeping it enabled is not a problem as it will not be used if not available in the current X session.