ZOOM C++ Windows install
[yazpp-moved-to-github.git] / doc / installation.xml
1 <chapter id="installation">
2   <!-- $Id: installation.xml,v 1.7 2002-10-30 10:27:37 adam Exp $ -->
3   <title>Installation</title>
4   <para>
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
10    your system.
11   </para>
12   <para>
13    YAZ++ is built on top of the 
14    <ulink url="http://indexdata.dk/yaz/">YAZ</ulink>
15    toolkit.
16    You need to install that first.
17    For some platforms there are binary packages for YAZ.
18   </para>
19   <section id="unix">
20    <title>Building on Unix</title>
21    <para>On UNIX, the software is compiled as follows:
22     <screen>
23      $ ./configure
24      $ make
25      $ su
26      # make install
27     </screen>
28    </para>
29    <para>
30     You can supply options for the <literal>configure</literal> script.
31     The most useful ones are:
32     <variablelist>
33      <varlistentry>
34       <term><literal>--prefix </literal>directory</term>
35       <listitem><para>
36         Specifies installation prefix. By default
37         <literal>/usr/local</literal> is used.
38        </para></listitem>
39      </varlistentry>
40      <varlistentry>
41       <term><literal>--with-yazconfig </literal>directory</term>
42       <listitem><para>
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).
47         </para>
48        <para>
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
52         what you want.
53        </para></listitem>
54      </varlistentry>
55     </variablelist>
56     For the whole list of <literal>configure</literal> options, refer
57     to the help:
58     <literal>./configure --help</literal>.
59    </para>
60    <para>
61     This is what you have after successful compilation:
62     <variablelist>
63      <varlistentry>
64       <term><literal>src/yaz-proxy</literal></term> 
65       <listitem><para>
66         The YAZ <link linkend="proxy">Z39.50 Proxy</link> utility.
67         This program gets installed in your binaries directory
68         (<parameter>prefix</parameter><literal>/bin</literal>).
69        </para></listitem>
70      </varlistentry>
71
72      <varlistentry>
73       <term><literal>lib/libyaz++.la</literal></term> 
74       <listitem><para>
75         The YAZ++ library, including the
76         <link linkend="zoom">ZOOM-C++</link> classes.
77         This library gets installed in your libraries directory
78         (<parameter>prefix</parameter><literal>/lib</literal>).
79        </para></listitem>
80      </varlistentry>
81
82      <varlistentry>
83       <term><literal>include/yaz++/*.h</literal></term> 
84       <listitem><para>
85         Various C++ header files, which you'll need for YAZ
86         development. All these are installed in your header files area
87         (<parameter>prefix</parameter><literal>/include/yaz++</literal>).
88        </para></listitem>
89      </varlistentry>
90      
91      <varlistentry>
92       <term><literal>yaz++-config</literal></term> 
93       <listitem><para>
94         A Bourne shell-script utility that returns the values of the
95         <envar>CFLAGS</envar> and <envar>LIBS</envar>
96         environment variables
97         needed in order to compile your applications with the YAZ++
98         library.  This script gets installed in your binaries directory
99         (<parameter>prefix</parameter><literal>/bin</literal>).
100        </para></listitem>
101      </varlistentry>
102
103      <varlistentry>
104       <term><literal>zoom/zclient</literal></term> 
105       <listitem><para>
106         ZOOM C++ demonstration client. This client does not
107         get installed in the system directories.
108        </para></listitem>
109      </varlistentry>
110
111      <varlistentry>
112       <term><literal>src/yaz-my-client</literal></term> 
113       <listitem><para>
114         YAZ C++ demonstration client. This client does not
115         get installed in the system directories.
116        </para></listitem>
117      </varlistentry>
118
119      <varlistentry>
120       <term><literal>src/yaz-my-server</literal></term> 
121       <listitem><para>
122         YAZ C++ demonstration server. This server does not
123         get installed in the system directories.
124        </para></listitem>
125      </varlistentry>
126     </variablelist>
127    </para>
128   </section>
129   <section id="windows">
130    <title>Building on Windows</title>
131    <para>
132     You'll find Visual Studio project files in sub directory
133     <filename>win</filename>. Open workspace <filename>yazxx.dsw</filename>
134     which includes the following projects:
135     <variablelist>
136      <varlistentry>
137       <term><literal>yazxx.dsp</literal></term>
138        <listitem><para>
139         Builds the <filename>yazxx.dll</filename>.
140        </para></listitem>
141      </varlistentry>
142      <varlistentry>
143       <term><literal>yazclient.dsp</literal></term>
144        <listitem><para>
145         Builds the sample client <filename>yazmyclient.exe</filename>.
146        </para></listitem>
147      </varlistentry>
148      <varlistentry>
149       <term><literal>yazserver.dsp</literal></term>
150        <listitem><para>
151         Builds the sample server <filename>yazmyserver.exe</filename>.
152        </para></listitem>
153      </varlistentry>
154      <varlistentry>
155       <term><literal>yazserver.dsp</literal></term>
156        <listitem><para>
157         Builds the proxy <filename>yazproxy.exe</filename>.
158        </para></listitem>
159      </varlistentry>
160      <varlistentry>
161       <term><literal>zoomxxclient.dsp</literal></term>
162        <listitem><para>
163         Builds the ZOOM C++ demo client <filename>zoomxxclient.exe</filename>.
164        </para></listitem>
165      </varlistentry>
166     </variablelist>
167    </para>
168    <para>
169     By default, the include path and library path for the projects assumes
170     that YAZ is located in <filename>..\yaz</filename> 
171     (i.e. same prefix as the YAZ++ source).
172     If YAZ is in a different directory you'll have to modify
173     the include path in 
174     <literal>Project | Settings | C/C++ | Preprocessor | Additional include
175      directories</literal>
176     and library path in
177     <literal>Project | Settings | Link | Input | Additional library
178      path</literal>.
179    </para>
180   </section>
181  </chapter>
182  <!-- Keep this comment at the end of the file
183  Local variables:
184  mode: sgml
185  sgml-omittag:t
186  sgml-shorttag:t
187  sgml-minimize-attributes:nil
188  sgml-always-quote-attributes:t
189  sgml-indent-step:1
190  sgml-indent-data:t
191  sgml-parent-document: "yaz++.xml"
192  sgml-local-catalogs: nil
193  sgml-namecase-general:t
194  End:
195  -->