<para>compatibility layer for &cmucl; specific code.</para>
</listitem>
<listitem>
-<para>improved robustness of the &mysql; back-end.</para>
+<para>much improved robustness for the &mysql; back-end.</para>
</listitem>
<listitem>
<para>improved system loading.</para>
<sect2>
<title>&uffi;</title>
- <para> &clsql; uses <ulink
+ <para>&clsql; uses <ulink
url="http://uffi.med-info.com/"><citetitle>&uffi;</citetitle></ulink>
as a <emphasis>Foreign Function Interface</emphasis> (<glossterm
linkend="gloss-ffi">FFI</glossterm>) to support multiple &cl;
other systems.</para>
</sect2>
+ <sect2>
+ <title>XPTest (optional)</title>
+ <para>The test suite for &clsql; uses the onShore Development's
+XPTest package. onShore has graciously put the package in the public
+domain. You can download the package from onShore's web <ulink
+url="http://alpha.onshored.com/lisp-software/"><citetitle>site</citetitle></ulink>.
+This package is not required except if you wish to run the &clsql;
+test suite.</para>
+ </sect2>
+
<sect2>
<title>Supported Common Lisp Implementation</title>
<para>
The implementations that support &clsql; is governed by the supported
-implementations of &uffi;. At the time of the initial release of &clsql;,
-the following implementations are supported:
+implementations of &uffi;. The following implementations are supported:
</para>
<itemizedlist mark="opencircle">
- <listitem><para>&acl; v6.1 on Redhat Linux 7.2 and Microsoft Windows.</para></listitem>
- <listitem><para>&lw; v4.2 on Redhat Linux 7.2 and Microsoft Windows.</para></listitem>
- <listitem><para>&cmucl; 18d on Redhat Linux 7.2.</para></listitem>
+ <listitem><para>&acl; v6.1 on Redhat Linux 7.2, FreeBSD 4.5, and Microsoft Windows XP.</para></listitem>
+ <listitem><para>&lw; v4.2 on Redhat Linux 7.2 and Microsoft Windows XP.</para></listitem>
+ <listitem><para>&cmucl; 18d-pre on Redhat Linux 7.2, FreeBSD 4.5, and Solaris 2.8.</para></listitem>
</itemizedlist>
</sect2>
Currently, &clsql; supports the following databases:
</para>
<itemizedlist mark="opencircle">
- <listitem><para>&mysql; v3.23.49 on Redhat Linux 7.2 and Microsoft Windows.</para></listitem>
- <listitem><para>&postgresql; v7.1 on Redhat Linux 7.2. Support for both direct API connections and TCP socket connections.</para></listitem>
- <listitem><para>Allegro's ODBC interface (&aodbc;) on Redhat Linux 7.2 and Microsoft Windows.</para></listitem>
+ <listitem><para>&mysql; v3.23.49.</para></listitem>
+ <listitem><para>&postgresql; v7.2 with both direct API and TCP socket connections.</para></listitem>
+ <listitem><para>Allegro's ODBC interface (&aodbc;) using iODBC ODBC manager.</para></listitem>
</itemizedlist>
</sect2>
</sect2>
<sect2>
- <title>Build <filename>clsql-mysql</filename> helper library</title>
- <para>&mysql; uses functions that require 64-bit integer
+ <title>Build &c; helper libraries</title>
+ <para>&clsql; uses functions that require 64-bit integer
parameters and return values. The &ffi; in most &clsql;
-implementations do not support 64-bit integers. Thus, a C helper
-library is required to break these 64-bit integers into two compatible
+implementations do not support 64-bit integers. Thus, C helper
+libraries are required to break these 64-bit integers into two compatible
32-bit integers.</para>
-<para><filename>Makefile</filename>'s for Microsoft Windows and GNU/Solaris systems
-are supplied to build this library. In addition, the <type>DLL</type> and <type>LIB</type>
+<para>Makefiles for Microsoft Windows and GNU/Solaris systems
+are supplied to build the libraries. Since many Microsoft Windows
+users don't have access to a compiler, the <type>DLL</type> and <type>LIB</type>
files for Microsoft Windows are supplied with the distribution.</para>
-<para>To build the library, first move to the directory
-<filename>interfaces/mysql</filename> directory. You may need to
-edit <filename>Makefile</filename> or <filename>Makefile.msvc</filename> to
-correctly specify the location of your &mysql; installation. On UNIX systems, use
-the command:
- <programlisting>make</programlisting>
-On a Microsoft Windows system,
-use the command:
- <programlisting>
-nmake /f
-Makefile.msvc
- </programlisting></para>
+<para>To build the libraries on a GNU or Solaris, use the shell and
+change to the root directory of &clsql;. You may need to edit the file
+<filename>interfaces/mysql/Makefile</filename> to specify the location of your
+MySQL installation. The default Makefiles are setup for shared library
+linking on Linux. If you are using FreeBSD or Solaris, you will need
+to change the linker setting as instructed in the Makefile.
+Then, you can give the command
+<programlisting>
+make libs
+</programlisting>
+in the root directory of &clsql; to build the libraries
+<filename>interfaces/mysql/clsql-mysql.so</filename> and
+<filename>interfaces/clsql-uffi/clsql-uffi.so</filename>.
+</para>
</sect2>
<sect2>
<title>Load &uffi;</title>
<para>
- Unpack the appropriate &uffi; version for your system which creates a directory
+ Unzip or untar the &uffi; distribution which creates a directory
for the &uffi; files. Add that directory to Defsystem's <varname>mk:*central-registry*</varname>.
You can do that by either pushing the pathname of the directory onto this variable, or
use the new <function>add-registry-location</function> present in the newest versions of
</para>
</sect2>
+ <sect2>
+ <title>Load &clsql; modules</title>
+ <para>
+ Unzip or untar the &clsql; distribution which creates a directory
+for the &clsql; files. Add that directory to Defsystem's <varname>mk:*central-registry*</varname>.
+You can do that by either pushing the pathname of the directory onto this variable, or
+use the new <function>add-registry-location</function> present in the newest versions of
+&defsystem;. The following example code assumes the &clsql; files reside in the
+<filename>/usr/local/src/lisp/clsql</filename> directory. You need to load, at a minimum,
+the main <symbol>:clsql</symbol> system and at least one interface system.
+ <programlisting>
+(mk:add-registry-location #P"/usr/local/src/lisp/clsql")
+(mk:load-system :clsql) ; main clsql package
+(mk:load-system :clsql-mysql) ; MySQL interface
+(mk:load-system :clsql-postgresql) ; PostgreSQL interface
+(mk:load-system :clsql-postgresql-socket) ; Socket PGSQL interface
+(mk:load-system :clsql-aodbc) ; Allegro ODBC interface
+ </programlisting>
+ </para>
+ </sect2>
+
</sect1>
</chapter>