Installation Compilation
Building GAMGI is trivial, _as_long_as_ all libraries can be seen at compile time, link time and run time. If problems arise, see the tips section.

Most Linux distributions split libraries in two packages, one containing the (shared object) *.so files, with a name such as library-version.rpm, and another containing the (header) .h files, usually with a name such as library-version-devel.rpm. To run GAMGI only the former are necessary, but to compile GAMGI all are required.

Popular Linux distributions tend to install library-version.rpm but not library-version-devel.rpm packages, to save space, assuming that users want to run but not to build the applications. Smaller libraries as Expat, GtkGLext and Freetype tend to include *.so and *.h files in a single package. All these libraries are available from every Linux distribution, so finding and installing library-version.rpm and library-version-devel.rpm is easy.

### Go to the source code directory

    cd $GAMGI/gamgi_version/src

### Edit the file make_local

When installing GAMGI for the first time, edit the file $GAMGI/gamgi_version/src/make_local and update the following lines, which tell gcc and make where are the required header (.h) and library (.so) files (when updating the GAMGI version, just copy this file from a previous installation):

    PATH_EXPAT_H = -I/usr/include
    PATH_FREETYPE_H = -I/usr/include/freetype2
    PATH_X_H = -I/usr/X11R6/include
    PATH_GLIB_H = -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
    PATH_CAIRO_H = -I/usr/include/cairo
    PATH_PANGO_H = -I/usr/include/pango-1.0
    PATH_ATK_H = -I/usr/include/atk-1.0
    PATH_GTK_H =  -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include
    PATH_MESA_H = -I/usr/include
    PATH_GTKGL_H = -I/usr/include/gtkglext-1.0 -I/usr/lib64/gtkglext-1.0/include

    PATH_EXPAT_L = -L/usr/lib64
    PATH_FREETYPE_L = -L/usr/lib64
    PATH_X_L = -L/usr/X11R6/lib64
    PATH_GLIB_L = -L/usr/lib64
    PATH_CAIRO_L = -L/usr/lib64
    PATH_PANGO_L = -L/usr/lib64
    PATH_ATK_L = -L/usr/lib64
    PATH_GTK_L =  -L/usr/lib64
    PATH_MESA_L = -L/usr/lib64
    PATH_GTKGL_L =-L/usr/lib64

This is a typical configuration for most Linux distributions on amd64 (for i386 and PPC hardware replace lib64 by lib). Slightly different configurations, for several different distributions and architectures are available from the same file.

### Build the executable

To build the gamgi executable, type make. To remove object and executable files, type make clean.
Home