<?xml version="1.0" ?>
<?xml-stylesheet type="text/css" href="stylesheet.css" ?>

<!-- Copyright 2003 Steve Folta -->

<cleet-doc xmlns:xlink="http://www.w3.org/1999/xlink">

<title> Using Cleet </title>

<p>
This chapter describes how to use the current implementation of Cleet.
</p>


<header> Installing Cleet </header>

<p>
Get the tarball from
<a xlink:type="simple" xlink:show="replace"
	xlink:href="http://somefancy.com/cleet/cleet.tgz"
	href="http://somefancy.com/cleet/cleet.tgz"
>
http://somefancy.com/cleet/cleet.tgz
</a>.
Untar it, and follow the directions in the ReadMe file to build the
compiler.
</p>

<p>
Note that Cleet requires that the Boehm garbage collector be installed
on your system.
</p>



<header> Creating a Cleet Project </header>

<p>
To write a program in Cleet, create a directory for your program.  In that
directory, create a subdirectory called <id>classes</id> -- that's where
you'll put your class files.
</p>

<p>
One of your classes will be the "program class".  It must be a subclass of
<id>Program</id> and will define <id>create()</id> and/or <id>run()</id>.
</p>

<p>
Copy <path>/usr/lib/cleet/makefiles/makefile-example</path> to
<path>makefile</path> in your project directory.  Edit it for your
project -- there are comments in it telling you what you'll need to do.
</p>


<p>
Once you've set up your <path>makefile</path> and written your classes,
you just need to type <command>make</command> to build your program.  You'll
probably notice that the current Cleet compiler works by compiling the
Cleet code into C++, and invoking GCC (or whatever your default compiler is)
to compile and link the C++ into the executable.
</p>



<header> Extending Classes </header>

<p>
If you feel the need to add functions and/or fields to one of the Standard
classes, you can do so easily by creating a directory called
<path>class-extensions</path> in your project directory.  In that
directory, you can put "class extension" files, which are just like
class files, except they only contain the "Class:" header and the extra
fields and functions that you are adding.
</p>



</cleet-doc>
