2. 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.

Note

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.

Note

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.

Note

YAZ++ is not using ZLIB. But libxml2 is.

When satisfied with the settings in the makefile, type

     nmake
    

Tip

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.