DiamondBase README

Please make sure you have read the Copyright file.

MAJOR CHANGES: for 0.3
=======================

THESE ARE VERY IMPORTANT AND REQUIRE YOU TO CHANGE YOUR FILES

We have modified the way theDiamondBase object works. It is now part of the
library. You must therefore remove:
extern DiamondBase theDiamondBase;
from your code.

To specify which config file to use, you use theDiamondBase.loadConfig.
Pass to it the name of the config file to use or "" to make it consider all
relations in the current directory.

eg:
int main(void)
{
	theDiamondBase.loadConfig("config.db");
	etc
}

The config file syntax has changed in a minor way. It is now 
relation path
ie the = is gone.

INSTALLATION:
=============

If you are running a semi sane Unix then the INSTALL file should provide
you with very simple configuration and installation instructions. Things
should go in very well. If you have problems, read on.

I am assuming that for some reason 'configure' had trouble configuring
your system correctly. You will have to do it manually. To do this you will
need to createa a Makefile and dbconf.h

Makefile:
=========
First copy Makefile.in to Makefile
Search for 'prefix' and set this to where you will install diamondBase.
Just below that you will find a line:
# Here are the autoconf variables

Below it are a whole lot of configurable options you will have to put each
one in.

CXX: Your C++ compiler
CXXFLAGS: Any flags needed to make CXX compile C++ nicely. Eg. -xc++ for
   gcc (use c++ or g++ instead in preference) or -Wall or -O2 or whatever
   it is you like.
LEX: The name of you lexer with appropriate switches to produce lex.yy.c.
PARSERGEN: Your YACC or compatible parser generator with flags so that it
   produces a y.tab.c
STRIPHEAD: OK, some OSes are stupid. They prototype malloc at the front of
   y.tab.c which breaks C++. This variable must define hopw to make a
   working dsc.cc from a y.tab.c. In general this will work:
   cp y.tab.c dsc.cc
   For SunOS you might want
   tail +2 y.tab.c > dsc.cc

RANLIB: Whatever has to be done to apply the magic to libraries to work.

LIBS: Any extra libraries needed to make things work like -lfl.
INSTALL: Can be used by INSTALLDATA and INSTALLBIN as a common command.
INSTALLDATA: Program to install data files, usually 'install -m 644 -c' or 'cp'
INSTALLBIN: Program to install executables, usually 'install -m 775 -c -s'
or 'cp'.

dbconf.h:
=========
Copy dbconf.h.in to dbconf.h
Then edit it as appropriate. It should be self explanatory.

Now you should be able to 'make'.

BUGS

What are they? Hopefully you won't find any, but if you do, please mail a
desription of the bug and maybe even a bit of code to exploit it along with
any patches you might have that fix the bug to the following address:

	kevinl@cs.monash.edu.au

We will attempt to rectify the bug or incorporate your patches. We would
also like to hear about errors in the manual.

NOTE: Please include a description of the platform you are running
DiamondBase on including the architecture, compiler and any other relevant
info. Please also include and changes you have made to the Makefile,
particularly compiler flags. Also compile and run the version program and
send us the output of that with your bug.

DiamondBase was written by, and is maintained by:

Darren Platt: darrenp@dibbler.cs.monash.edu.au
Andrew Davison: davison@bruce.cs.monash.edu.au
Kevin Lentin: kevinl@fangorn.cs.monash.edu.au

We invite comments on the package, suggestions etc.

Note. Some of the things we mention are trademarks of some big companies
with lots of lawyers.
