The files in this directory (and elsewhere) have confusingly similar
names. Here's an attempt at an explanation. I use $MYSQL to represent
the base directory of your MySQL sources.


- libmysqlclient.so

  is the dynamic library built from the MySQL sources by the MySQL
  make, and loaded by all clients connecting to a MySQL server.  This
  contains most of the client API.


- libmysqlclientstk.so
  libmysqlclientstk.c

  But because MySQL is written in C, some of the client API calls are
  actually #defined macros defined in $MYSQL/include/mysql.h in the
  MySQL distribution. We can't directly use these from STk, so simple
  C functions had to be written to do the same as these #defines.
  These can be found in libmysqlclientstk.c which our Makefile builds
  into libmysqlclientstk.so.


- libmysqlclient.stk

  Thus, we have two dynamic libraries that all STk clients will
  need. The STk foreign function definitions describing these
  functions, their arguments, their entry points etc., are to be found
  in libmysqlclient.stk, which is generated by the perl in
  extract-api.pl from the sources in $MYSQL/client/libmysql.c and the
  above-mentioned functions in libmysqlclientstk.c.


With all this, STk clients should be able to simply use

  (load "libmysqlclient.stk")

and, if the two dynamic libraries (libmysqlclient.so and
libmysqlclientstk.so) can be located, then have access to the full
MySQL client API.
