 --------------------------------------------------------------------
                      [incr Tcl] -- version 2.0
 --------------------------------------------------------------------

This distribution contains the latest beta versions of [incr Tcl],
[incr Tk], tcl 7.4 and tk 4.0. You won't need anything else but the
programs and libraries included here to use either of these packages.

Please take note that the libraries in this distribution are shared
libraries and all programs have been compiled using these shared
libraries. Many people told me that this would be impossible and it
was admittedly a hell of a lot of work. Nonetheless, I have included
statically linked versions of the libraries and tools. So if you're
experiencing any weird problems you don't really know how to explain,
give the statically linked versions a try. They're located in
/usr/local/itcl-2.0b2/bin.static.

To install the package, execute the following commands as root:

 $ cd /
 $ tar xfvz itcl-2.0b2.tar.gz
 $ cd /usr/local/itcl-2.0b2/install
 $ ./install.sh

All files will be located in the /usr/local/itcl-2.0b2 directory and
then linked into /usr/local/{bin|man|lib} appropriately. After the new
libraries are installed, you should run ldconfig again, to let the
system know they're available.

To uninstall the package again, all you have to do is to execute the
following commands as root:

 $ cd /usr/local/itcl-2.0b2/install
 $ ./uninstall.sh

That's it.

Bellow I appended a short part of the original makefile to let you
know what [incr Tcl] is after all. :-)

                                 Peter Simons <simons@peti.rhein.de>



 What is [incr Tcl]?
------------------------------------------------------------------------
 [incr Tcl] started as a small, object-oriented extension of the
 Tcl language.  It was originally conceived to support more structured
 programming in Tcl.  Tcl scripts that grow beyond a few thousand lines
 become extremely difficult to maintain.  This is because the building
 blocks of vanilla Tcl are procedures and global variables, and all of
 these building blocks must reside in a single global namespace.  There
 is no support for protection or encapsulation.

 [incr Tcl] introduces the notion of objects.  Each object is a bag
 of data with a set of procedures or "methods" that are used to
 manipulate it.  Objects are organized into "classes" with identical
 characteristics, and classes can inherit functionality from one
 another.  This object-oriented paradigm adds another level of
 organization on top of the basic variable/procedure elements, and
 the resulting code is easier to understand and maintain.

 Among other things, [incr Tcl] can be used to create new widgets that
 look and work like the usual Tk widgets, but are written entirely at
 the Tcl language level (no C code).  These "mega-widgets" can be
 created using [incr Tk], a set of base classes which provide the
 core mega-widget functionality.  [incr Widgets] is a set of high-level
 mega-widgets built using [incr Tk].  It can be used right out of the
 box, and it includes the following components:

   - FileSelectionDialog
   - MessageDialog
   - PromptDialog
   - PanedWindow
   - OptionMenu
   - ScrolledListBox
   - and many others...

 Classes and/or related procedures can also be encapsulated in their
 own "namespace".  A namespace is a collection of commands, variables,
 classes and other namespaces that is set apart from the usual global
 scope.  Elements within a namespace can be "private" or "protected",
 so that access to them is restricted.  An "import" command allows all
 of the elements from one namespace to be integrated into another.

 Extension writers will immediately see the benefit of namespaces.
 With vanilla Tcl, each extension must add its commands and variables
 at the global scope.  Extension writers are encouraged to add a unique
 prefix to all of the names in their package, to avoid naming collisions.
 Extensions can now sit in their own namespace of commands and variables,
 and sensitive elements can be protected from accidental access.  For
 example, the current release of [incr Tcl] has a namespace "::itcl"
 for object-oriented support, a namespace "::itk" for mega-widget
 support, and a namespace "::iwidgets" for the [incr Widgets] package.
 Each of these namespaces has its own collection of commands and
 variables.  Developers can then pick and choose among the extensions,
 and integrate the parts that they need for their application by
 importing various namespaces at the global scope.
