The easiest way to install YAZ on Windows is by downloading an installer from here. The installer comes with source too - in case you wish to compile YAZ with different Compiler options etc.
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.
     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:
     
     
DEBUGIf 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).
HAVE_TCL, TCL
         If HAVE_TCL is set to 1, nmake will
         use the ASN.1 compiler (Tcl based). You must set
         TCL to the full path of the Tcl
         interpreter.
        
         If you do not have Tcl installed, set
         HAVE_TCL to 0.
        
HAVE_BISON,
        BISON
         If GNU Bison is present, you might set HAVE_ICONV
         to 1 and specify the Bison executable in BISON.
         Bison is only required if you use the CVS version of
         YAZ or if you modify the grammar for CQL
         (cql.y).
        
A Windows version of GNU Bison is part of unxutils.
HAVE_ICONV,
        ICONV_DIR
         If HAVE_ICONV is set to 1, YAZ 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, YAZ is compiled
         with SRU support. In this configuration, set 
         LIBXML2_DIR to the 
         libxml2 source directory
	 and
	 ZLIB_DIR to the zlib directory.
        
Windows versions of libxslt, libxml2, zlib and iconv can be found Igor Zlatković' site.
YAZ is not using zlib but libxml2 is depending on it.
HAVE_LIBXSLT,
        LIBXSLT_DIR
         If HAVE_LIBXSLT is set to 1, YAZ is compiled
         with XSLT support. In this configuration, set 
         LIBXSLT_DIR to the 
         libxslt source directory.
        
libxslt depends libxml2.
HAVE_ICU,
        ICU_DIR
         If HAVE_ICU is set to 1, YAZ is compiled
         with ICU support.
	 In this configuration, set 
         ICU_DIR to the 
         ICU source directory.
        
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/yaz3.dll / 
	  bin/yaz3d.dllYAZ Release/Debug DLL.
lib/yaz3.lib / 
	  lib/yaz3d.lib
         Import library for yaz3.dll /
	 yaz3d.dll.
        
bin/yaz_icu3.dll /
          bin/yaz_icu3d.dllRelease/Debug DLL for the ICU wrapper utility. Only build if HAVE_ICU is 1.
lib/yaz_icu3.lib /
	  lib/yaz_icu3d.lib
         Import library for yaz_icu3.dll /
	 yaz_icu3d.dll.
        
bin/yaz-ztest.exeZ39.50 multi-threaded test/example server. It's a WIN32 console application.
bin/yaz-client.exeYAZ Z39.50 client application. It's a WIN32 console application. See chapter YAZ client for more information.
bin/yaz-icu.exeThis program exposes the ICU wrapper library if that is enabled for YAZ. Only if ICU is available this program is build.
bin/zoomsh.exeSimple console application implemented on top of the ZOOM functions. The application is a command line shell that allows you to enter simple commands to perform ZOOM operations.
bin/zoomtst1.exe, 
        bin/zoomtst2.exe, ..Several small applications that demonstrates the ZOOM API.
This section will go though the process of linking your WIN32 applications with YAZ.
Some people are confused by the fact that we use the nmake tool to build YAZ. They think they have to do that too - in order to make their WIN32 applications work with YAZ. The good news is that you don't have to. You can use the integrated environment of Visual Studio if desired for your own application.
When setting up a project or Makefile you have to set the following:
         Set it to the include directory of YAZ.
        
yaz3.lib
       
         You must link with this library. It's located in the 
         sub directory lib of YAZ.
	 If you want to link with the debug version of YAZ, you must
	 link against yaz3d.lib instead.
        
yaz3.dll
       This DLL must be in your execution path when you invoke your application. Specifically, you should distribute this DLL with your application.