Building glean for GNU/Linux

The present versions of glean Makefiles depend on features of GNU make. (In particular, the automatic re-scanning of all dependency files after any have changed.) If your version of make is known to be significantly incompatible with GNU make, then you will need to acquire a copy of GNU make or modify glean's Makefiles.

glean makes extensive use of the C++ Standard Template Library. If your C++ compiler fails to compile glean, you may want to try the latest version of gcc. glean was originally developed with egcs 1.1.2; earlier versions are missing some features that glean uses, such as namespaces.

Obtain the source code

Obtain the gzipped tar file containing glean from the glean downloads page on SourceForge, or better yet, grab a full source tree from the anonymous CVS access page on SourceForge.

Unpack the tar file:

    tar xfz glean-1-0.tgz
    cd glean_1_0
This will create a subdirectory named glean_1_0 and make it your current directory.

Set the GLEAN_ROOT environment variable

To compile or run glean, you will need to set the environment variable GLEAN_ROOT to the full pathname of the glean source directory. If you're following along, this is your current directory, so this command should do the trick for users of csh and its descendants:

    setenv GLEAN_ROOT `pwd`
and this command should work for users of sh and its descendants:
    GLEAN_ROOT=`pwd`; export GLEAN_ROOT
Be sure to set the environment variable each time you want to compile or run glean. Perhaps the easiest way to do this is to set it in your shell's startup script.

Set Makefile options

Edit $GLEAN_ROOT/make/common.mak and modify the configuration variables according to your preferences. Some of the variables that are most likely to need customization are:

CONFIG
This variable selects the operating system and window system for which glean will be compiled. The OS option must be either __UNIX__ or __MS__. The window-system option must be either __X11__ or __WIN__. (Yes, there is some ambiguity between the OS and the window system in Microsoft's case. However, there are X11 products that run under Windows, so the combination of __MS__ and __X11__ is possible.) By default, this variable is set to "-D__UNIX__ -D__X11__".
CC
This variable specifies the location of the C++ compiler. By default it is "g++".
XINC, GLINC, GLUTINC, TIFFINC
These variables specify the directories containing include files for X, OpenGL, GLUT, and libtiff, respectively. The defaults are /usr/include/X11, /usr/local/include, /usr/local/include, and /usr/include, respectively.
XLIB, GLLIB, GLUTLIB, TIFFLIB
These variables specify the directories containing libraries (libX11, libGL, libglut, and libtiff, respectively). The defaults are /usr/X11R6/lib, /usr/local/lib, /usr/local/lib, and /usr/lib, respectively.
_INC, _OPT, _DBG, _WARN, _LIBDIR, _LIB, _PROF
These variables define C++ command-line options for include-file directories, optimization, debugging, warnings, library directories, libraries, and profiling. These apply universally, to all glean compilations. Individual Makefiles can make local additions to these defaults by defining corresponding variables whose names do not have a leading underscore. Note that it is possible to configure your system so that the order of include-file or library-file directories is significant; for example, by having two versions of the same include file, one in /usr/include and one in /usr/local/include. In such cases, you'll need to make sure that the _INC and _LIB variables specify directories in precisely the order you require.

Build glean

When you've finished editing the Makefile, simply type

    cd src
    make install
This will build glean and the other tools in the suite, and install everything in $GLEAN_ROOT/bin, $GLEAN_ROOT/include, and $GLEAN_ROOT/lib. Nothing will be altered outside the $GLEAN_ROOT directory hierarchy.

Note that you must use make install rather than plain make, otherwise the headers and libraries won't be copied to $GLEAN_ROOT and subsequent components will fail to build.