Installation
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 is compiled on Windows using Visual C++.
Other compilers should work too. Let us know of portability
problems, etc. with your system.
YAZ++ is built on top of the
YAZ
toolkit.
You need to install that first.
For some platforms there are binary packages for YAZ.
Installation on Unix (from source)On UNIX, the software is compiled as follows:
$ ./configure
$ make
$ su
# make install
You can supply options for the configure script.
The most useful ones are:
--prefix directory
Specifies installation prefix. By default
/usr/local is used.
--with-yaz directory
Specifies the location of yaz-config.
The yaz-config program is generated in
the source directory of YAZ as well as the binaries
directory when YAZ is installed (via make install).
If you don't supply this option, configure will
look for yaz-config in directories of the
PATH environment - which is nearly always
what you want.
For the whole list of configure options, refer
to the help:
./configure --help.
Configure uses GCC's C/C++ compiler if available. To specify another
compiler, set CXX. To use other compiler flags,
specify CXXFLAGS. To use CC
with debugging you could use:
CXXFLAGS="-g" CXX=CC ./configure
This is what you have after successful compilation:
src/libyazpp.la
The YAZ++ library.
This library gets installed in your libraries directory
(prefix/lib).
src/libzoompp.la
The ZOOM-C++ library.
This library gets installed in your libraries directory
(prefix/lib).
include/yazpp/*.h
Various C++ header files, which you'll need for YAZ++
development. All these are installed in your header files area
(prefix/include/yazpp).
yazpp-config
A Bourne shell-script utility that returns the values of the
CFLAGS and LIBS
environment variables
needed in order to compile your applications with the YAZ++
library. This script gets installed in your binaries directory
(prefix/bin).
zoom/zclient
ZOOM C++ demonstration client that uses the ZOOM C++ classes.
This client does not get installed in the system directories.
src/yaz-my-client
YAZ C++ demonstration client. This client does not
get installed in the system directories.
src/yaz-my-server
YAZ C++ demonstration server. This server does not
get installed in the system directories.
Installation on Windows
YAZ++ is shipped with "makefiles" for the NMAKE tool that comes
with Microsoft Visual Studio.
Version 2003 (7) and 2005 (8) has been tested.
We expect that YAZ++ compiles with versions 5 and 6 as well.
Start a command prompt and switch the sub directory
WIN where the file makefile
is located. Customize the installation by editing the
makefile file (for example by using notepad).
The following summarizes the most important settings in that file:
DEBUG
If set to 1, the software is
compiled with debugging libraries (code generation is
multi-threaded debug DLL).
If set to 0, the software is compiled with release libraries
(code generation is multi-threaded DLL).
YAZ_DIR
Specifies the directory of the YAZ source.
When satisfied with the settings in the makefile, type
nmake
If the nmake command is not found on your system
you probably haven't defined the environment variables required to
use that tool. To fix that, find and run the batch file
vcvars32.bat. You need to run it from within
the command prompt or set the environment variables "globally";
otherwise it doesn't work.
If you wish to recompile YAZ++ - for example if you modify
settings in the makefile you can delete
object files, etc by running.
nmake clean
The following files are generated upon successful compilation:
bin/yazpp_1.dll
YAZ++ DLL . Includes ZOOM C++ as well.
For the debug version lib/yazpp_1_d.dll
is created instead.
lib/yazpp_1.lib
Import library for yazpp_1.dll.
For the debug version lib/yazpp_1_d.lib
is created instead.
bin/yaz-my-client.exe
Z39.50 client demonstrating the YAZ++ API.
bin/yaz-my-server.exe
Z39.50 server demonstrating the YAZ++ API.
bin/zclient.exe
ZOOM C++ demo client. A simple WIN32 console application.