With this release of Gnuchess the book file is being switched from a text-based file to
a binary file. Where in the past the book file was "gnuchess.book" now the primary 
book file is "gnuchess.book.data". It is intended that text book files will only be 
used to generate the binary file.

The GDX based bookfile is the standard binary bookfile and should be used. This means the -DGDX
compile option should be used and the instructions for generating a GDX book followed. The Makefile
will generate a GDX book for the basic gnuchess.book text file if "make install" is entered or
if "make gnuchess.book.data" is entered. Larger opening databases can be created using the opening
data in the misc directory. If you use other than GDX based books follow the instructions below.

COMPILE TIME

There are now three choices for the binary book file at compile time. 

Compile option -DGDBM creates a GNU-dbm based book. It is fast carefree but
not very space efficient and slow to generate. It is highly recommended that it
be done on a memory based file system.

Compile option -DGDX creates a random file based book file. It is space efficient
medium fast to generate, and allows large books.

If neither of the above options is choosen the memory based book is generated.
The size of the book is then dependent on the memory you have available.


Creating a Binary book file.



*GDX based.

GDX based creates a disk based hash file. You must specify the size of the file.
It is the most efficient book to use.

	gnuchessr -b textfile -B binaryfile -S #entries [-P plys]

"#entries" is the number of unique position/move combinations  that will be kept plus an extra 20-30%
since this is a hashfile. The size of the file will be:

	12 + (#entries)*12

A book with 528k moves which resulted in 319k entries. There can be
multiple entries for a position. I put this in a binary file with space 
for 450k entries and it took about 5 meg.




GDBM based.

Use gnuchessr.

	gnuchessr -b textfile -B binaryfile [ -P plys ]

will read the text book file "textfile" add create a gdbm file "binaryfile".
Data for 28 plys (14 moves each side) will be stored, unless the -P option
is specified. With -P you can specify the number of plys. Less plys less space.

You then just move the binary file from your memory based file system to 
the name and path specified in the Makefile for BINBOOKFILE and it will use it.


*Memory based.

Memory based bookfiles are produced just like GDX based.



Misc.

You can add entries to an existing binary file. If the binary file exists the entries in the text file
will be added to the binary file.


If possible use a memory based file system when generating a binary book file. It will go much faster.
