1 <chapter id="installation">
2 <!-- $Id: installation.xml,v 1.9 2004-01-07 11:49:03 adam Exp $ -->
3 <title>Installation</title>
5 You need a C++ compiler to compile and use YAZ++.
6 The software was implemented using GCC so we know that works
7 well with YAZ++. From time to time the software has been
8 compiled on Windows using Visual C++. Other compilers should
9 work too. Let us know of portability problems, etc. with
13 YAZ++ is built on top of the
14 <ulink url="http://indexdata.dk/yaz/">YAZ</ulink>
16 You need to install that first.
17 For some platforms there are binary packages for YAZ.
20 <title>Building on Unix</title>
21 <para>On UNIX, the software is compiled as follows:
30 You can supply options for the <literal>configure</literal> script.
31 The most useful ones are:
34 <term><literal>--prefix </literal>directory</term>
36 Specifies installation prefix. By default
37 <literal>/usr/local</literal> is used.
41 <term><literal>--with-yazconfig </literal>directory</term>
43 Specifies the location of <filename>yaz-config</filename>.
44 The <filename>yaz-config</filename> program is generated in
45 the source directory of YAZ as well as the binaries
46 directory when YAZ is installed (via make install).
49 If you don't supply this option, <literal>configure</literal> will
50 look for <filename>yaz-config</filename> in directories of the
51 <envar>PATH</envar> environment - which is nearly always
56 <term><literal>--with-xslt </literal>directory</term>
58 Specifies prefix for libxslt (and libxml2).
59 configure must be able to locate <command>xslt-config</command>
60 in PREFIX/bin. If this option is omitted, configure looks
61 for <command>xslt-config</command> in the current PATH.
65 For the whole list of <literal>configure</literal> options, refer
67 <literal>./configure --help</literal>.
70 Configure uses GCC's C/C++ compiler if available. To specify another
71 compiler, set <literal>CXX</literal>. To use other compiler flags,
72 specify <literal>CXXFLAGS</literal>. To use <literal>CC</literal>
73 with debugging you could use:
75 CXXFLAGS="-g" CXX=CC ./configure
79 This is what you have after successful compilation:
82 <term><literal>src/yaz-proxy</literal></term>
84 The YAZ <link linkend="proxy">Z39.50 Proxy</link> utility.
85 This program gets installed in your binaries directory
86 (<parameter>prefix</parameter><literal>/bin</literal>).
91 <term><literal>lib/libyaz++.la</literal></term>
93 The YAZ++ library, including the
94 <link linkend="zoom">ZOOM-C++</link> classes.
95 This library gets installed in your libraries directory
96 (<parameter>prefix</parameter><literal>/lib</literal>).
101 <term><literal>include/yaz++/*.h</literal></term>
103 Various C++ header files, which you'll need for YAZ
104 development. All these are installed in your header files area
105 (<parameter>prefix</parameter><literal>/include/yaz++</literal>).
110 <term><literal>yaz++-config</literal></term>
112 A Bourne shell-script utility that returns the values of the
113 <envar>CFLAGS</envar> and <envar>LIBS</envar>
114 environment variables
115 needed in order to compile your applications with the YAZ++
116 library. This script gets installed in your binaries directory
117 (<parameter>prefix</parameter><literal>/bin</literal>).
122 <term><literal>zoom/zclient</literal></term>
124 ZOOM C++ demonstration client. This client does not
125 get installed in the system directories.
130 <term><literal>src/yaz-my-client</literal></term>
132 YAZ C++ demonstration client. This client does not
133 get installed in the system directories.
138 <term><literal>src/yaz-my-server</literal></term>
140 YAZ C++ demonstration server. This server does not
141 get installed in the system directories.
147 <section id="windows">
148 <title>Building on Windows</title>
150 You'll find Visual Studio project files in sub directory
151 <filename>win</filename>. Open workspace <filename>yazxx.dsw</filename>
152 which includes the following projects:
155 <term><literal>yazxx.dsp</literal></term>
157 Builds the <filename>yazxx.dll</filename>.
161 <term><literal>yazclient.dsp</literal></term>
163 Builds the sample client <filename>yazmyclient.exe</filename>.
167 <term><literal>yazserver.dsp</literal></term>
169 Builds the sample server <filename>yazmyserver.exe</filename>.
173 <term><literal>yazserver.dsp</literal></term>
175 Builds the proxy <filename>yazproxy.exe</filename>.
179 <term><literal>zoomxxclient.dsp</literal></term>
181 Builds the ZOOM C++ demo client <filename>zoomxxclient.exe</filename>.
187 By default, the include path and library path for the projects assumes
188 that YAZ is located in <filename>..\yaz</filename>
189 (i.e. same prefix as the YAZ++ source).
190 If YAZ is in a different directory you'll have to modify
192 <literal>Project | Settings | C/C++ | Preprocessor | Additional include
193 directories</literal>
195 <literal>Project | Settings | Link | Input | Additional library
200 <!-- Keep this comment at the end of the file
205 sgml-minimize-attributes:nil
206 sgml-always-quote-attributes:t
209 sgml-parent-document: "yaz++.xml"
210 sgml-local-catalogs: nil
211 sgml-namecase-general:t