---------- Status -------------------------------------------------------------

The code is on a PREVIEW level. PREVIEW means pre-alpha.

---------- Requirements -------------------------------------------------------

The MySQL driver for OpenOffice.org (MySQL Connector/OpenOffice.org - C/OOo)
requires two external libraries to be build:

 1) The MySQL Client Library (libmysql)
 2) The MySQL Connector/C++ Library (libmysqlcppcon)

At the time of writing neither of the two libraries are part of the CWS!
Before you can build the MySQL driver for OpenOffice.org you must install
the two required libraries on your system before you can compile the driver.

You need the two libraries because the MySQL driver for OpenOffice.org
does not feature an implementation of the MySQL Client Server
communication protocol. The protocol implementation is part of the MySQL
Client Library. And the SDBC(X) style OpenOffice.org driver is implemented as a
wrapper of the MySQL Connector/C++ Library which implements a JDBC interface and
in turn uses the C based MySQL Client Library.

1) MySQL Client Library (libmysql)

The MySQL Client Library (libmysql) is part of the MySQL Server. You need to
download and install the MySQL Server. Use a binary distribution of
MySQL 5.0.x or MySQL 5.1.x. Check the MySQL manual for instructions, e.g.
for Unix:

 http://dev.mysql.com/doc/refman/5.1/en/installing-binary.html

The typical installation path of the libmysql.so on Unix is
/usr/local/mysql/lib/mysql/ .

2) MySQL Connector/C++ (libmysqlcppcon)

Download and install the latest version of the MySQL Connector/C++, see
http://forge.mysql.com/wiki/Connector_C++ . Check out the source
from the bzr repository.

3) Tweaking library paths

At the time of writing you might have to *manually* tweak library paths and
library names by patching makefile.mk. This is a temporary hack. The makefile
will be improved later.

However, for the moment check the makefile.mk if the compilation fails due to
"missing" libraries (= libraries not found). For example, check the following
settings:

  MYSQL_INCDIR=/usr/local/include
  MYSQL_LIBDIR=/usr/local/lib
  [...]
  MYSQL_INCDIR=/usr/local/include
  MYSQL_LIBDIR=/usr/local/lib
  [...]
  MYSQL_INC=-I$(MYSQL_INCDIR)
  MYSQL_LIB=-L$(MYSQL_LIBDIR) -lmysqlclient -rdynamic -lz -lcrypt -lnsl -lm
  MYSQL_LIBFILE=$(MYSQL_LIBDIR)$/libmysqlclient.so.16
  MYSQL_CPPCONN_LIBFILE=$(MYSQL_LIBDIR)$/libmysqlcppconn.so
  [...]

A common issue is libmysqlclient.so.15 vs. libmysqlclient.so.16 .

