If you want to hack on the GLib project, you'll need to have the
following packages installed:

	- GNU autoconf 2.54
	- GNU automake 1.7
	- GNU libtool 1.4
        - GNU gettext 0.10.40
        - gtk-doc

These should be available by ftp from ftp.gnu.org or any of the
fine GNU mirrors.  Beta software can be found at alpha.gnu.org.

To compile a CVS version of glib on your system, you will need to take
several steps to setup the tree for compilation.  You can do all these
steps at once by running:

        cvsroot/glib# ./autogen.sh
 
Basically this does the following for you:

  	cvsroot/glib# aclocal; automake; autoconf

        The above commands create the "configure" script.  Now you
	can run the configure script in cvsroot/glib to create all
	the Makefiles.

Before running autogen.sh or configure, make sure you have libtool
in your path.

Note that autogen.sh runs configure for you.  If you wish to pass
options like --prefix=/usr to configure you can give those options
to autogen.sh and they will be passed on to configure.

For information about submitting patches see the README file.
