Next Previous Contents

2. Compilation and Installation

The latest version of the software will generally be found at

http://ftp.indexdata.dk/pub/yaz/

We have tried our best to keep the software portable, and on many platforms, you should be able to compile everything with little or no changes. So far, the software has been ported to the following platforms with little or no difficulties.

If you move the software to other platforms, we'd be grateful if you'd let us know about it. If you run into difficulties, we will try to help if we can, and if you solve the problems, we would be happy to include your fixes in the next release. So far, we have mostly avoided #ifdefs for individual platforms, and we'd like to keep it that way as far as it makes sense.

We maintain a mailing-list for the purpose of announcing new releases and bug-fixes, as well as general discussion. Subscribe by sending mail to [email protected]. General questions and problems can be directed at [email protected], or the address given at the top of this document.

2.1 UNIX

Note that if your system doesn't have a native ANSI C compiler, you may have to acquire one separately. We recommend gcc.

For UNIX we use GNU configure to create Makefiles for YAZ. Generally it should be sufficient to run configure without options:

./configure

The configure script attempts to use use the C compiler specified by the CC environment variable. If not set, GNU C will be used if it is available. The CFLAGS environment variable holds options to be passed to the C compiler. If you're using Bourne-compatible shell you may pass something like this to use a particular C compiler with optimization enabled:

  CC=/opt/ccs/bin/cc CFLAGS=-O ./configure

To customize YAZ the configure script also accepts a set of options. The most important are:

--prefix path

Specifies installation prefix. This is only needed if you run make install later to perform a "system" installation. The prefix is /usr/local if not specified.

--enable-comp

YAZ will be built using the ASN.1 compiler for YAZ (default). If you wish to use the old decoders (in sub directory asn) use --disable-comp instead.

--enable-threads

YAZ will be built using POSIX threads. Specifically, _REENTRANT will be defined during compilation.

When configured, build the software by typing:

  make

Developers that do modifications to YAZ may wish to run make depend as well to generate object-header file dependencies.

The following files are generated by make

lib/libyaz.a

The YAZ programmers' library.

ztest/yaz-ztest

A test Z39.50 server.

client/yaz-client

A command mode Z39.50 client.

yaz-config

A Bourne-shell script that holds build settings for YAZ.

If you wish to install YAZ in system directories such as /usr/local/bin, /usr/local/lib) you can type:

  make install

You probably need to have root access in order to perform this. You must specify the --prefix option for configure if you going to install in anything but /usr/local/.

2.2 WIN32

YAZ is shipped with "makefiles" for the NMAKE tool that comes with Visual C++.

Start an MS-DOS 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 summarises the most important settings in that file:

NEW_Z3950

If 1, the auto-generated decoder/encoders for Z39.50 as written by the ASN.1 compiler will be used. If 0, the old decoders for Z39.50 will be used. Note, when 1, the setting TCL should point to the Tcl shell on your system.

DEBUG

If set to 1, the software is compiled with debugging libraries. If set to 0, the software is compiled with release (non-debugging) libraries.

When satisfied with the settings in the makefile type

nmake

The following is generated upon successful compilation:

bin/yaz.dll

A multithreaded DLL with everything except the frontend server library.

lib/yaz.lib

An import library for yaz.dll.

lib/server.lib

The frontend server library.

bin/yaz-ztest.exe

A test Z39.50 server.

bin/yaz-client.exe

A command mode Z39.50 client.


Next Previous Contents