List more dependencies
[yazproxy-moved-to-github.git] / doc / installation.xml
index 683e911..9cc450d 100644 (file)
@@ -1,20 +1,41 @@
 <chapter id="installation">
-  <!-- $Id: installation.xml,v 1.1 2004-04-11 11:36:52 adam Exp $ -->
+  <!-- $Id: installation.xml,v 1.8 2005-02-07 09:50:23 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
+   You need a C++ compiler to compile and use YAZ proxy.
+   The software was implemented using
+   <ulink url="http://gcc.gnu.org/">GCC</ulink> so we know that works
+   well with YAZ proxy. 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.
+   YAZ proxy is built on top of the 
+   <ulink url="http://indexdata.dk/yaz/">YAZ</ulink> and
+   <ulink url="http://indexdata.dk/yazplusplus/">YAZ++</ulink>
+   toolkits.
+   You need to install these first.
+   For some platforms there are binary packages available for YAZ/YAZ++.
+  </para>
+  <para>
+   We also highly recommend that
+   <ulink url="http://xmlsoft.org/">libxml2</ulink> and
+   <ulink url="http://xmlsoft.org/XSLT/">libXSLT</ulink> are installed.
+   YAZ must be configured with libxml2 support.
+   If not, 
+   <ulink url="http://www.loc.gov/z3950/agency/zing/srw/">SRW/SRU</ulink>
+   is not supported.
+   The YAZ Proxy uses libXSLT for record conversions via XSLT.
+  </para>
+  <para>
+   YAZ proxy may also use USEMARCON to convert between MARC
+   formats. This is useful if you want the proxy to offer more
+   MARC record types than the backend target supports. Get USEMARCON
+   from:
+   <ulink url="http://www.bl.uk/services/bibliographic/usemarcon.html">
+    British Library USEMARCON page
+   </ulink>.
   </para>
   <section id="unix">
    <title>Building on Unix</title>
        </para></listitem>
      </varlistentry>
      <varlistentry>
-      <term><literal>--with-yazconfig </literal>directory</term>
+      <term><literal>--with-yazpp </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).
+        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
+        look for <filename>yaz++-config</filename> in directories of the
         <envar>PATH</envar> environment - which is nearly always
         what you want.
        </para></listitem>
      <varlistentry>
       <term><literal>--with-xslt </literal>directory</term>
       <listitem><para>
-        Specifies prefix for libxslt (and libxml2).
+        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>
+     <varlistentry>
+      <term><literal>--with-usemarcon </literal>directory</term>
+      <listitem><para>
+        Specifies USEMARCON installation prefix.
+       configure must be able to locate <command>usemarcon-config</command>
+       in PREFIX/bin. If this option is omitted, configure looks
+       for <command>usemarcon-config</command> in the current PATH.
+       </para></listitem>
+     </varlistentry>
     </variablelist>
     For the whole list of <literal>configure</literal> options, refer
     to the help:
@@ -69,8 +99,8 @@
    <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:
+    specify <literal>CXXFLAGS</literal>. For example, to use
+    <literal>CC</literal> with debugging do:
     <screen>
      CXXFLAGS="-g" CXX=CC ./configure
     </screen>
     This is what you have after successful compilation:
     <variablelist>
      <varlistentry>
-      <term><literal>proxy/yaz-proxy</literal></term> 
+      <term><literal>src/yazproxy</literal></term> 
       <listitem><para>
-        The YAZ <link linkend="proxy">Z39.50 Proxy</link>.
-       This program gets installed in your binaries directory
+        The YAZ Proxy program.
+       It gets installed in your binaries directory
        (<parameter>prefix</parameter><literal>/bin</literal>).
        </para></listitem>
      </varlistentry>
 
      <varlistentry>
-      <term><literal>src/libyazcpp.la</literal></term> 
-      <listitem><para>
-        The YAZ++ library.
-       This library gets installed in your libraries directory
-       (<parameter>prefix</parameter><literal>/lib</literal>).
-       </para></listitem>
-     </varlistentry>
-     
-     <varlistentry>
-      <term><literal>src/libzoomcpp.la</literal></term> 
-      <listitem><para>
-        The <link linkend="zoom">ZOOM-C++</link> library.
-       This library gets installed in your libraries directory
-       (<parameter>prefix</parameter><literal>/lib</literal>).
-       </para></listitem>
-     </varlistentry>
-     
-     <varlistentry>
-      <term><literal>proxy/libyazproxy.la</literal></term> 
+      <term><literal>src/libyazproxy.la</literal></term> 
       <listitem><para>
         The YAZ proxy library. This library gets installed in
-       your libraries directory
+       the libraries directory
        (<parameter>prefix</parameter><literal>/lib</literal>).
        </para></listitem>
      </varlistentry>
 
      <varlistentry>
-      <term><literal>include/yaz++/*.h</literal></term> 
+      <term><literal>include/yazproxy/*.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>).
+        C++ header files, which you'll need for YAZ proxy
+       development. All these are installed in the header files area
+       (<parameter>prefix</parameter><literal>/include/yazproxy</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 that uses the ZOOM C++ classes.
-       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> 
+      <term><literal>etc</literal></term> 
       <listitem><para>
-        YAZ C++ demonstration server. This server does not
-        get installed in the system directories.
+       Various files such as
+       configuration files, XSLT files, CQL to RPN conversion files,
+       a sample start/stop control script
+       <filename>yazproxy.ctl.sh</filename> that can be used as
+       template for an <filename>/etc/init.d</filename> script.
+       These files are installed in the YAZ proxy's data area
+       (<parameter>prefix</parameter><literal>/share/yazproxy</literal>).
        </para></listitem>
      </varlistentry>
+     
     </variablelist>
    </para>
   </section>
     Version 6 and .NET has been tested. We expect that YAZ++ compiles
     with version 5 as well.
    </para>
+   <note>
     <para>
+     The YAZ proxy has never been used in production on Windows. Although
+     it compiles and runs, doesn't mean it scale on that platform.
+     Furthermore the
+     YAZ proxy currently doesn't run as a Service - only as a Console
+     application.
+    </para>
+   </note>
+   <para>
     Start a command prompt and switch the sub directory
     <filename>WIN</filename> where the file <filename>makefile</filename>
     is located. Customize the installation by editing the
        </para></listitem>
      </varlistentry>
 
+     <varlistentry><term><literal>YAZ_DIR</literal></term>
+      <listitem><para>
+       This must be set to the home of the YAZ source directory.
+       </para></listitem>
+     </varlistentry>
+
+     <varlistentry><term><literal>YAZPP_DIR</literal></term>
+      <listitem><para>
+       This must be set to the home of the YAZ++ source directory.
+       </para></listitem>
+     </varlistentry>
+
      <varlistentry>
       <term><literal>HAVE_XSLT</literal>,
        <literal>LIBXSLT_DIR</literal></term>
        If <literal>HAVE_LIBXSLT</literal> is set to 1, the proxy is compiled
        with XSLT and XML support. In this configuration, set 
        <literal>LIBXSLT_DIR</literal> to the 
-       <ulink url="http://www.xmlsoft.org/">libxslt</ulink> source
+       <ulink url="http://www.xmlsoft.org/">libXSLT</ulink> source
        directory.
        </para>
        
        </note>
        
        <para>
-       Windows versions of libxslt, libxml2, zlib and iconv can be found
+       Windows versions of libXSLT, libxml2, zlib and iconv can be found
        <ulink url="http://www.zlatkovic.com/libxml.en.html">
         here</ulink>.
        </para>
     The following files are generated upon successful compilation:
     
     <variablelist>
-     <varlistentry><term><filename>bin/yazpp.dll</filename></term>
-      <listitem><para>
-       YAZ++ DLL . Includes ZOOM C++ as well.
-       </para></listitem></varlistentry>
-     
-     <varlistentry><term><filename>lib/yaz.lib</filename></term>
-      <listitem><para>
-       Import library for <filename>yazpp.dll</filename>.
-       </para></listitem></varlistentry>
-     
      <varlistentry><term><filename>bin/yazproxy.dll</filename></term>
       <listitem><para>
        YAZ proxy DLL.
        Import library for <filename>yazproxy.dll</filename>.
        </para></listitem></varlistentry>
      
-     <varlistentry><term><filename>bin/yaz-proxy.exe</filename></term>
+     <varlistentry><term><filename>bin/yazproxy.exe</filename></term>
       <listitem><para>
        YAZ proxy. It's a WIN32 console application.
-       See <xref linkend="proxy"/> for more information.
-       </para></listitem></varlistentry>
-     
-     <varlistentry><term><filename>bin/zclient.exe</filename></term>
-      <listitem><para>
-       ZOOM C++ demo client. A simple WIN32 console application.
        </para></listitem></varlistentry>
      
     </variablelist>
  sgml-always-quote-attributes:t
  sgml-indent-step:1
  sgml-indent-data:t
- sgml-parent-document: "yaz++.xml"
+ sgml-parent-document: "yazproxy.xml"
  sgml-local-catalogs: nil
  sgml-namecase-general:t
  End: