Simple install procedure
========================

  % gzip -cd glib-1.2.10.tar.gz | tar xvf -  # unpack the sources
  % cd glib-1.2.10                           # change to the toplevel directory
  % ./configure                             # run the `configure' script
  % make                                    # build GLIB

  [ Become root if necessary ]
  % rm -rf /install-prefix/include/glib.h /install-prefix/include/gmodule.h
  % make install                            # install GLIB

Special note for GLib+-1.2.9
============================

Between GLib-1.2.8 and GLib-1.2.9, the include files for GLib
have been moved to $(includedir)/gtk-1-2/ to allow parallel installations
of GLib-1.2 and GLib-2.0 to work correctly. If you are installing
on top of an old installation of GLib, you should remove the files:

 $(includedir)/glib.h
 $(includedir)/gmodule.h

Before running 'make install'

The Nitty-Gritty
================

The 'configure' script can be given a number of options to enable
and disable various features. For a complete list, type:

  ./configure --help

A few of the more important ones:

*  --prefix=PREFIX         install architecture-independent files in PREFIX
                           [ Defaults to /usr/local ]

*  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                           [ Defaults to the value given to --prefix ]

Options can be given to the compiler and linker by setting
environment variables before running configure. A few of the more
important ones:

 CC       : The C compiler to use
 CPPFLAGS : Flags for the C preprocesser such as -I and -D
 CFLAGS   : C compiler flags

The most important use of this is to set the
optimization/debugging flags. For instance, to compile with no
debugging information at all, run configure as:

 CFLAGS=-O2 ./configure           # Bourne compatible shells (sh/bash/zsh)

or,

 setenv CFLAGS -O2 ; ./configure  # csh and variants


Installation directories
========================

The location of the installed files is determined by the --prefix
and --exec-prefix options given to configure. There are also more
detailed flags to control individual directories. However, the
use of these flags is not tested.

One particular detail to note, is that the architecture-dependent
include file glibconfig.h is installed in:

  $exec_pref/lib/glib/include/

if you have a version in $prefix/include, this is out of date
and should be deleted.

A shell script glib-config is created during the configure
process, and installed in the bin/ directory
($exec_prefix/bin). This is used to determine the location of glib
when building applications.  If you move glib after installation,
it will be necessary to edit this file.

