

	Cego
	----
	A relational and transactional database system

	(C)opyright 2000-2024 by Bjoern Lemke

	This software comes under the GNU general public license

Requirements
-----------
To build Cego, you need the latest lfcbase and lfcxml library packages available from www.lemke-it.com:

Furthermore, you need the GNU readline library available via http://tiswww.case.edu/php/chet/readline/rltop.html    

Tested platforms and compliers
----------------------------
Cego has been successfully tested on

       Solaris SPARC and x86 ( primary development platform ( x86) )
       Linux ( secondary )
       Mac OS X ( secondary )
       Windows/MinGW/MSYS ( compiled and tested )
       FreeBSD ( compiled and tested )
       HP-UX  ( compiled, but not heavy tested )
       
using GNU C++ compiler or Forte C++ ( Solaris )

Installation
------------
Run the configure script with the following options

    $ ./configure --prefix=<prefix-dir>

where prefix-dir is the base directory of the previous installed base and xml libraries.
For 64bit compile, you have to set the CFLAGS variable

    $ ./configure --prefix=<prefix-dir> CFLAGS=-m64 LDFLAGS=-m64

where -m64 is the valid compile option vor GNU gcc.

For Forte C compiles ( Sun Solaris ), you should specify
 
    $ ./configure --prefix=<prefix-dir> CFLAGS=-m64 LDFLAGS=-m64
 
Please note : For 64bit compile, you also need appropriate 64bit compiled versions of libBase,
libXML and the readline library

For multithreaded performance reasons, use for Solaris compiles additional compiler flags ( Forte CC )
and the the libumem library ( libumem is highly recommended ) 

On a M5000 ( UltraSPRC VII ), I used the following flags 

    $ ./configure --prefix=<prefix-dir> CFLAGS="-m64 -mt -KPIC -xprefetch=yes -xarch=sparcfmaf -fma=fused 
      		  			-xchip=sparc64vi" LDFLAGS="-xarch=sparcfmaf -lumem"

Please note: On an AMD Athlon(tm) 64 Processor 3800+ Socket 939 with Solais x86, the linkage 
of the libumem slows down application performance of about 20% 

On FreeBSD 8.1, cego has been sucessfully compiled using the clang++ compiler with the following options
With cego 2.10.0, code adaptions have been taken place to avoid compiler warnings

   $ export CC=clang 
   $ export CXX=clang++
   $ ./configure --prefix=<prefix-dir>

To get debug output, cego has to be compiled with compiler definition CGDEBUG. For this, run configure with 
the following option

    $ ./configure "CXXFLAGS=-DCGDEBUG"

To disable the curses base admin monitor and console client flow control option, the CGNOCURSES compile flag has to be defined. For this, run configure with 
the following option

    $ ./configure "CXXFLAGS=-DCGNOCURSES"

Of course, you can combine both compile options described above


Now run make

    $ make

This builds the Cego executable programs. Now you can perform
a database test suite run with

    $ make check
    
If all checks are passed succesful, you can install
the package with the install command

    $ make install
    
For logging, a status table is written and printed out at the end, when all quality gates have been passed.
If succesful, all checks should be marked as ok, otherwise an error indicates the failed gate checks.

Have fun !  

For using the Cego database suite, please refer to the HTML-based documentation on www.lemke-it.com

