Installation
You need a C++ compiler to compile and use YAZ proxy.
The software was implemented using
GCC 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.
YAZ proxy is built on top of the
YAZ and
YAZ++
toolkits.
You need to install these first.
For some platforms there are binary packages available for YAZ/YAZ++.
We also highly recommend that
libxml2 and
libXSLT are installed.
YAZ must be configured with libxml2 support.
If not,
SRW/SRU
is not supported.
The YAZ Proxy uses libXSLT for record conversions via XSLT.
Building on Unix
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-yazpp 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.
--with-xslt directory
Specifies prefix for libXSLT (and libxml2).
configure must be able to locate xslt-config
in PREFIX/bin. If this option is omitted, configure looks
for xslt-config in the current PATH.
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. For example, to use
CC with debugging do:
CXXFLAGS="-g" CXX=CC ./configure
This is what you have after successful compilation:
src/yazproxy
The YAZ Proxy program.
It gets installed in your binaries directory
(prefix/bin).
src/libyazproxy.la
The YAZ proxy library. This library gets installed in
the libraries directory
(prefix/lib).
include/yazproxy/*.h
C++ header files, which you'll need for YAZ proxy
development. All these are installed in the header files area
(prefix/include/yazproxy).
etc
Various files such as
configuration files, XSLT files, CQL to RPN conversion files,
a sample start/stop control script
yazproxy.ctl.sh that can be used as
template for an /etc/init.d script.
These files are installed in the YAZ proxy's data area
(prefix/share/yazproxy).
Building on Windows
YAZ++ is shipped with "makefiles" for the NMAKE tool that comes
with
Microsoft Visual Studio.
Version 6 and .NET has been tested. We expect that YAZ++ compiles
with version 5 as well.
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.
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
This must be set to the home of the YAZ source directory.
YAZPP_DIR
This must be set to the home of the YAZ++ source directory.
HAVE_XSLT,
LIBXSLT_DIR
If HAVE_LIBXSLT is set to 1, the proxy is compiled
with XSLT and XML support. In this configuration, set
LIBXSLT_DIR to the
libXSLT source
directory.
If you enable libXSLT you have to enable libxml2 and its
sub components zlib and iconv as well.
Windows versions of libXSLT, libxml2, zlib and iconv can be found
here.
HAVE_ICONV,
ICONV_DIR
If HAVE_ICONV is set to 1, the proxy is
compiled with iconv support. In this configuration, set
ICONV_DIR to the iconv source directory.
HAVE_LIBXML2,
LIBXML2_DIR
If HAVE_LIBXML2 is set to 1, the proxy is compiled
with XML support. In this configuration, set
LIBXML2_DIR to the
libxml2 source directory
and
ZLIB_DIR to the zlib directory.
YAZ++ is not using ZLIB. But libxml2 is.
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/yazproxy.dll
YAZ proxy DLL.
lib/yazproxy.lib
Import library for yazproxy.dll.
bin/yazproxy.exe
YAZ proxy. It's a WIN32 console application.