1 <chapter id="installation">
2 <!-- $Id: installation.xml,v 1.8 2003-10-24 11:18:51 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 For the whole list of <literal>configure</literal> options, refer
58 <literal>./configure --help</literal>.
61 Configure uses GCC's C/C++ compiler if available. To specify another
62 compiler, set <literal>CXX</literal>. To use other compiler flags,
63 specify <literal>CXXFLAGS</literal>. To use <literal>CC</literal>
64 with debugging you could use:
66 CXXFLAGS="-g" CXX=CC ./configure
70 This is what you have after successful compilation:
73 <term><literal>src/yaz-proxy</literal></term>
75 The YAZ <link linkend="proxy">Z39.50 Proxy</link> utility.
76 This program gets installed in your binaries directory
77 (<parameter>prefix</parameter><literal>/bin</literal>).
82 <term><literal>lib/libyaz++.la</literal></term>
84 The YAZ++ library, including the
85 <link linkend="zoom">ZOOM-C++</link> classes.
86 This library gets installed in your libraries directory
87 (<parameter>prefix</parameter><literal>/lib</literal>).
92 <term><literal>include/yaz++/*.h</literal></term>
94 Various C++ header files, which you'll need for YAZ
95 development. All these are installed in your header files area
96 (<parameter>prefix</parameter><literal>/include/yaz++</literal>).
101 <term><literal>yaz++-config</literal></term>
103 A Bourne shell-script utility that returns the values of the
104 <envar>CFLAGS</envar> and <envar>LIBS</envar>
105 environment variables
106 needed in order to compile your applications with the YAZ++
107 library. This script gets installed in your binaries directory
108 (<parameter>prefix</parameter><literal>/bin</literal>).
113 <term><literal>zoom/zclient</literal></term>
115 ZOOM C++ demonstration client. This client does not
116 get installed in the system directories.
121 <term><literal>src/yaz-my-client</literal></term>
123 YAZ C++ demonstration client. This client does not
124 get installed in the system directories.
129 <term><literal>src/yaz-my-server</literal></term>
131 YAZ C++ demonstration server. This server does not
132 get installed in the system directories.
138 <section id="windows">
139 <title>Building on Windows</title>
141 You'll find Visual Studio project files in sub directory
142 <filename>win</filename>. Open workspace <filename>yazxx.dsw</filename>
143 which includes the following projects:
146 <term><literal>yazxx.dsp</literal></term>
148 Builds the <filename>yazxx.dll</filename>.
152 <term><literal>yazclient.dsp</literal></term>
154 Builds the sample client <filename>yazmyclient.exe</filename>.
158 <term><literal>yazserver.dsp</literal></term>
160 Builds the sample server <filename>yazmyserver.exe</filename>.
164 <term><literal>yazserver.dsp</literal></term>
166 Builds the proxy <filename>yazproxy.exe</filename>.
170 <term><literal>zoomxxclient.dsp</literal></term>
172 Builds the ZOOM C++ demo client <filename>zoomxxclient.exe</filename>.
178 By default, the include path and library path for the projects assumes
179 that YAZ is located in <filename>..\yaz</filename>
180 (i.e. same prefix as the YAZ++ source).
181 If YAZ is in a different directory you'll have to modify
183 <literal>Project | Settings | C/C++ | Preprocessor | Additional include
184 directories</literal>
186 <literal>Project | Settings | Link | Input | Additional library
191 <!-- Keep this comment at the end of the file
196 sgml-minimize-attributes:nil
197 sgml-always-quote-attributes:t
200 sgml-parent-document: "yaz++.xml"
201 sgml-local-catalogs: nil
202 sgml-namecase-general:t