The contents of this directory are (basically) the first step
in creating .NET bindings, to libraries based on GObject.

QUICK INSTRUCTIONS
------------------

    Edit the .metadata file(s), then do a:

        make get-source-code
        make

   You only have to do a "make get-source-code" once!  After
    you have run "make get-source-code" once, do the following...


    Edit the .metadata file(s), then do a:

        make


    Note, these instructions only generate XML files in the "api"
    directory.  To turn those XML files (in the "api" directory)
    into C# code; and then turn that C# code into a .DLL, you'll
    need to perform extra steps, which are NOT described in this
    document.

    (If you are going to create a new .NET binding, then you will need
    to do more than just this.)


WHO USES THE SOURCES DIRECTORY
------------------------------

    This directory is essentially the "starting point" in the creation
    of a .NET binding.  Most people can safely ignore it.  (If all
    you want to do is build Gtk#, then you can ignore what's in this
    directory.)

    This directory is not part of the normal "build process" for Gtk#.
    But is instead used by people wishing to update an existing .NET
    binding; or to create a new .NET binding (for a GObject based library).

    The result of running "make" on this directory (once everything
    is set up) are the XML files that you find in the "api" directory.
    (Those XML files, that you find in the "api" directory,  are then used
    to generate the C# code.  And then that C# code is used to create
    the various .DLL files.)


WHAT'S REQUIRED
---------------

    Before you can do anything here, you need to get the source
    code to the various libraries (which you are generating .NET
    bindings for).  And then do a little configuring.  The current
    list of libraries that Gtk# supports is:

        glib-2.0.3
        pango-1.0.3
        atk-1.0.2
        gtk+-2.0.5
          * you need gdkpixbuf*.[ch] from gdk/ symlinked into gdk-pixbuf/
        libgnome-2.0.1
        libgnomecanvas-2.0.1
        libgnomeui-2.0.1
        gtkhtml: cvs branch gnome-2-port files gtkhtml.[ch], gtkhtml-types.h,
                 gtkhtml-enums.h, gtkhtml-stream.[ch]
        libglade-2.0.0
        libart_lgpl-2.3.10
        libgda-0.10.0
        libgnomedb-0.10.0
        gstreamer-0.4.2
        librsvg-2.0.1

    (If you create a new binding, that is part of Gtk#, be sure to add it
    to this list.  Also, you'll need to add an entry in "gtk-sharp.sources".
    And you should add it to the "makefile" so that it is part of the
    "get-source-code" rule.)

    (There are two ways to get this source code.  As you will see in the
    next section.)


SETTING THINGS UP
-----------------

    To set things up, you need to get the source code to the libraries listed
    above.  There are two (alternate) methods of doing this.

        Method 1)
            Download it.  Unpack the source code (if necessary).  Then do the extra
            cofiguration stuff listed above.

        Method 2)
            Run:
                make get-source-code


    (Method 2 is probably the easiest way to do it for most people.  It automatically
    goes and downloads everything you need.  And configures everything for you.)


EDITING .METADATA FILES
-----------------------

    Part of updating a .NET binding involves editing a .metadata file.  
    (Assuming you already have the required source code, to the
    libraries...) once you update a binding, you then run:

        make

    ...to create the new updated XML file(s) that will be placed in the "api"
    directory.


