GLAM Build Tools

The GLAM build system depends on quite a few free software packages. It makes heavy use of GNU autoconf, and make. Debian packages are used for the binary build and distribution of the software. Open standards such as Docbook, UML, PDF and HTML are used for all manuals and API documentation.

GNU Autoconf and make

To ease multi-platform development, GLAM uses several of the well-known cross platform software configuration and build utilities. Since this is not the place for a tutorial on each of these systems, only a brief description and webpage is provided for each package.

GLAM Build Tools


GNU autoconf is used for the software build system bootstrap and initialization phase. It is autoconf's job to examine the current system's capabilities and configure the software to build on that particular system. It also checks to make sure all required build tools, libraries and header files are contained on the system before the build process starts.

For more information on autoconf, please visit the GNU Autoconf Homepage.


Autoconf generates all the Makefiles, which GNU make then uses to produce all object files, libraries and documentation.

More information on GNU make can be found at the GNU Make Homepage.

System Documentation via Doc++, DocBook and Dia

Overall system and API documentation is of the utmost importance to any software project. The GLAM system implements a documentation methodology that is inline with the work pipeline of core developers, end developers, and system engineers.

API documentation is integrated into each C++ header file, and each developer is required to change the documentation when an API feature changes. Overall system design documentation is provided via DocBook XML handbooks that can be formatted into PDF for print usage or HTML for an online reference manual.

Visual software system documentation is provided via UML diagrams, which are then printed to PDF.

GLAM Documentation Tools


Doc++ is an inline software documentation system. It uses standard javadoc documentation markup language to provide information on classes, methods, variables, etc. All Doc++ documentation is contained in project C++ header files, which are then processed by doc++ to make attractive, cross-referenced, HTML API documentation.

For more information on Doc++, please visit the Doc++ Homepage .

DocBook XML

DocBook XML is a media-independent, standard documentation system for creating technical manuals. The document that you are currently reading was generated using DocBook XML. It separates the content of a manual from it's physical form, thus allowing a variety of delivery mechanisms such as HTML, PDF, TeX, or PostScript. All non-API documentation such as system overview, concept and usage is marked up in DocBook XML format.

For more information on DocBook XML, please visit the DocBook Homepage.


Dia is a vector drawing editor, much like Microsoft Visio. It provides a very nice Unified Modeling Language (UML) capability that is used for visual software design, prior to implementation. It is also coupled with two programs, dia2code and code2dia, that provide very basic round-trip engineering for C++ software systems.

For more information on UML, please visit the UML Homepage.

For more information on Dia, please visit the Dia Homepage.


Sodipodi is a vector based drawing program, similar to Adobe Illustrator. Several of the diagrams in the documentation were created with sodipodi and converted from the .sodipodi format to the PNG (Portable Network Graphics) format. In essence, a .sodipodi file is just an SVG (Scalable Vector Graphics) format with several extensions.

For more information on Sodipodi, please visit