README file for libfsm
----------------------

Version
-------
This README belongs to version 0.1, the initial release.


Introduction
------------
A lot of computer programs use Finite State Machines. They are suitable for
a lot of problems. They are particularly suited to message-based programs
such as X Windows System applications.
An FSM has a range of `states' and `inputs'. An input can lead to a change
of state for the FSM. This is called a transition.
A FSM consists of 2D a table of transitions, which is indexed by state and
input, and a driver function. To a particular combination of state and
input belongs a transition record which contains the new state and a
transition function. On the transition the new state is set, and the
function executed. Feeding an FSM with consecutive inputs leads to actions
being undertaken on the correct input. Un expected inputs return the state
machine to it's starting state. 

This library implements an abstraction of a FSM.

The makefile uses several UN*X/GNU tools, and might have to be changed
considerably for non-UN*X/GNU platforms. If anyone writes a makefile for
another platform, I'll be happy to include it the distribution.


Installing the library
----------------------

Read the Makefile. Change HDEST and LDEST to your preferences (they should
work pretty well on Linux systems).

Tip for GCC users: Set the environment variables C_INCLUDE_PATH to include
HDEST and LIBRARY_PATH to include LDEST to help GCC find your include- and
library files. 

Do a "make all" to build the library.

Login as root, change to the source directory, to do a "make install". You
might want to check beforehand that no other library/header file with the
same name exists in the installation directories, 
*since they will be replaced*.

The man-page should be copied to somewhere like /usr/local/man/man3 by
hand (as root). One day I'll put it in the makefile.

Removing the library
--------------------

Login as root, change to the source directory, and do a "make uninstall" to
remove the shared library and header file. You can than delete the source
code.


Contacting the author
---------------------

Please send bugs, patches, features you'd like to see etc. to me.
You can contact me at the following addresses.

e-mail:        rsmit06@ibm.net
snail-mail:    R. Smith
               Dr. Hermansweg 36
               5624 HR Eindhoven
               The Netherlands
