<chapter id="installation">
- <!-- $Id: installation.xml,v 1.1 2002-10-08 11:55:57 adam Exp $ -->
- <title>Installation</title>
- <para>
- How to compile this software.
- </para>
-</chapter>
+ <!-- $Id: installation.xml,v 1.9 2004-01-07 11:49:03 adam Exp $ -->
+ <title>Installation</title>
+ <para>
+ You need a C++ compiler to compile and use YAZ++.
+ The software was implemented using GCC so we know that works
+ well with YAZ++. From time to time the software has been
+ compiled on Windows using Visual C++. Other compilers should
+ work too. Let us know of portability problems, etc. with
+ your system.
+ </para>
+ <para>
+ YAZ++ is built on top of the
+ <ulink url="http://indexdata.dk/yaz/">YAZ</ulink>
+ toolkit.
+ You need to install that first.
+ For some platforms there are binary packages for YAZ.
+ </para>
+ <section id="unix">
+ <title>Building on Unix</title>
+ <para>On UNIX, the software is compiled as follows:
+ <screen>
+ $ ./configure
+ $ make
+ $ su
+ # make install
+ </screen>
+ </para>
+ <para>
+ You can supply options for the <literal>configure</literal> script.
+ The most useful ones are:
+ <variablelist>
+ <varlistentry>
+ <term><literal>--prefix </literal>directory</term>
+ <listitem><para>
+ Specifies installation prefix. By default
+ <literal>/usr/local</literal> is used.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>--with-yazconfig </literal>directory</term>
+ <listitem><para>
+ Specifies the location of <filename>yaz-config</filename>.
+ The <filename>yaz-config</filename> program is generated in
+ the source directory of YAZ as well as the binaries
+ directory when YAZ is installed (via make install).
+ </para>
+ <para>
+ If you don't supply this option, <literal>configure</literal> will
+ look for <filename>yaz-config</filename> in directories of the
+ <envar>PATH</envar> environment - which is nearly always
+ what you want.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>--with-xslt </literal>directory</term>
+ <listitem><para>
+ Specifies prefix for libxslt (and libxml2).
+ configure must be able to locate <command>xslt-config</command>
+ in PREFIX/bin. If this option is omitted, configure looks
+ for <command>xslt-config</command> in the current PATH.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ For the whole list of <literal>configure</literal> options, refer
+ to the help:
+ <literal>./configure --help</literal>.
+ </para>
+ <para>
+ Configure uses GCC's C/C++ compiler if available. To specify another
+ compiler, set <literal>CXX</literal>. To use other compiler flags,
+ specify <literal>CXXFLAGS</literal>. To use <literal>CC</literal>
+ with debugging you could use:
+ <screen>
+ CXXFLAGS="-g" CXX=CC ./configure
+ </screen>
+ </para>
+ <para>
+ This is what you have after successful compilation:
+ <variablelist>
+ <varlistentry>
+ <term><literal>src/yaz-proxy</literal></term>
+ <listitem><para>
+ The YAZ <link linkend="proxy">Z39.50 Proxy</link> utility.
+ This program gets installed in your binaries directory
+ (<parameter>prefix</parameter><literal>/bin</literal>).
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>lib/libyaz++.la</literal></term>
+ <listitem><para>
+ The YAZ++ library, including the
+ <link linkend="zoom">ZOOM-C++</link> classes.
+ This library gets installed in your libraries directory
+ (<parameter>prefix</parameter><literal>/lib</literal>).
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>include/yaz++/*.h</literal></term>
+ <listitem><para>
+ Various C++ header files, which you'll need for YAZ
+ development. All these are installed in your header files area
+ (<parameter>prefix</parameter><literal>/include/yaz++</literal>).
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>yaz++-config</literal></term>
+ <listitem><para>
+ A Bourne shell-script utility that returns the values of the
+ <envar>CFLAGS</envar> and <envar>LIBS</envar>
+ environment variables
+ needed in order to compile your applications with the YAZ++
+ library. This script gets installed in your binaries directory
+ (<parameter>prefix</parameter><literal>/bin</literal>).
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>zoom/zclient</literal></term>
+ <listitem><para>
+ ZOOM C++ demonstration client. This client does not
+ get installed in the system directories.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src/yaz-my-client</literal></term>
+ <listitem><para>
+ YAZ C++ demonstration client. This client does not
+ get installed in the system directories.
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src/yaz-my-server</literal></term>
+ <listitem><para>
+ YAZ C++ demonstration server. This server does not
+ get installed in the system directories.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </section>
+ <section id="windows">
+ <title>Building on Windows</title>
+ <para>
+ You'll find Visual Studio project files in sub directory
+ <filename>win</filename>. Open workspace <filename>yazxx.dsw</filename>
+ which includes the following projects:
+ <variablelist>
+ <varlistentry>
+ <term><literal>yazxx.dsp</literal></term>
+ <listitem><para>
+ Builds the <filename>yazxx.dll</filename>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>yazclient.dsp</literal></term>
+ <listitem><para>
+ Builds the sample client <filename>yazmyclient.exe</filename>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>yazserver.dsp</literal></term>
+ <listitem><para>
+ Builds the sample server <filename>yazmyserver.exe</filename>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>yazserver.dsp</literal></term>
+ <listitem><para>
+ Builds the proxy <filename>yazproxy.exe</filename>.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><literal>zoomxxclient.dsp</literal></term>
+ <listitem><para>
+ Builds the ZOOM C++ demo client <filename>zoomxxclient.exe</filename>.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ By default, the include path and library path for the projects assumes
+ that YAZ is located in <filename>..\yaz</filename>
+ (i.e. same prefix as the YAZ++ source).
+ If YAZ is in a different directory you'll have to modify
+ the include path in
+ <literal>Project | Settings | C/C++ | Preprocessor | Additional include
+ directories</literal>
+ and library path in
+ <literal>Project | Settings | Link | Input | Additional library
+ path</literal>.
+ </para>
+ </section>
+ </chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
- sgml-parent-document: "zebra.xml"
+ sgml-parent-document: "yaz++.xml"
sgml-local-catalogs: nil
sgml-namecase-general:t
End: