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.


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:


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


This must be set to the home of the YAZ source directory.


This must be set to the home of the YAZ++ source directory.


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.


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.


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



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:


YAZ proxy DLL.


Import library for yazproxy.dll.


YAZ proxy. It's a WIN32 console application.