Git clone from main repository: https://github.com/ruven/iipsrv (or download zip)
Building dependencies:
1. LibFCGI:
(Tested with version 2.4.1 - SNAP): http://www.fastcgi.com/dist/fcgi-2.4.1-SNAP-0910052249.tar.gz
1. Open fcgi-2.4.1-SNAP-0910052249\Win32\config_h.dsp in Visual Studio. (Convert and Open Projects -Yes)
2. Build Release|Win32 (or Release|x64 for 64bit)
3. Open fcgi-2.4.1-SNAP-0910052249\Win32\libfcgi.dsp in Visual Studio. (Convert and Open Projects -Yes)
4. Build Release|Win32 (or Release|x64 for 64bit)
5. Verify, that libfcgi.lib and libfcgi.dll exist in folder fcgi-2.4.1-SNAP-0910052249\libfcgi\Release (or x64\Release)
6. Copy libfcgi.lib into iipsrv\windows\dependencies\dlls\x86 or x64 and libfcgi.dll into iipsrv\windows\dependencies\libs\x86 or x64
7. Copy header files from fcgi-2.4.1-SNAP-0910052249\include into iipsrv\windows\dependencies\includes
2. LibJPEG:
(Tested with version 9a): http://www.ijg.org/files/jpegsr9a.zip
1. Run Visual Studio Command prompt (Start->Visual Studio Command Prompt (2010)) or x64
You must use Visual Studio Command prompt appropriate to version you are building 32/64bit.
2. Run NMAKE /f makefile.vc setup-v10 (Start -> Visual Studio Command Prompt, go to jpeg-9a folder, type it and press enter)
3. Open the solution file jpeg-9a\jpeg.sln
4. Build the Release|Win32 (or Release|x64)
5. Verify jpeg-9a\Release\jpeg.lib exists and copy it to iipsrv\windows\dependencies\libs\x86 or x64
7. Copy header files from jpeg-9a to iipsrv\windows\dependencies\includes
LibTiff:
(Tested with version 4.0.3): http://download.osgeo.org/libtiff/tiff-4.0.3.zip
1. Run Visual Studio Command prompt (Start->Visual Studio Command Prompt (2010)) or x64
You must use Visual Studio Command prompt appropriate to version you are building 32/64bit.
2. Run NMAKE /f makefile.vc (Start -> Visual Studio Command Prompt, go to tiff-4.0.3\libtiff folder, type it and press enter)
3. Verify, that tiff-4.0.3\libtiff\libtiff.lib exists and copy it to iipsrv\windows\dependencies\libs\x86 or x64
4. Copy header files from tiff-4.0.3\libtiff to iipsrv\windows\dependencies\includes
Zlib:
(Tested with version 1.2.8): http://zlib.net/zlib128.zip
1. Open zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln
2. Build the Release|Win32 (or Release|x64) of zlibstat project
3. Verify, that zlibstat.lib exists in folder zlib-1.2.8\contrib\vstudio\vc10\ZlibStatRelease (or x64\ZlibStatRelease) and copy it to iipsrv\windows\dependencies\libs\x86 or x64
4. Copy header files from zlib-1.2.8 to iipsrv\windows\dependencies\includes
MemCacheClient:
(Tested with version 2.0): http://code.jellycan.com/files/memcacheclient-2.0.zip
1. Open memcacheclient\MemCacheClient.vcxproj
2. In Properties -> C/C++ -> Code Generation -> Runtime Library set to Multi-threaded DLL (the same as is set in iipsrv project)
3. Build the Release|Win32 (or Release|x64)
4. Verify, that MemCacheClient.lib exists in folder memcacheclient\Release and copy it to iipsrv\windows\dependencies\libs\x86 or x64
5. Copy header files from memcacheclient to iipsrv\windows\dependencies\includes
Kakadu:
(Tested with version 7.2): Closed-source commercial products
(Closer instructions are in Compiling_Instructions.txt in main folder of Kakadu source)
1. Open coresys/coresys_2010.sln
2. Build the Release|Win32 (or Release|x64)
3. Verify folders lib_x86 and bin_x86 (or x64) were created and contain kdu_v72R.lib and kdu_v72R.dll (folders are created outside kakadu folder)
4. Copy kdu_v72R.lib and kdu_v72R.dll to iipsrv\windows\dependencies\dlls\x86 or x64 and to iipsrv\windows\dependencies\libs\x86 or x64
5. Copy header files from apps/compressed_io, apps/jp2 and coresys/common folder in Kakadu source and also stripe_compressor_local.h, stripe_decompressor_local.h, kdu_stripe_compressor.h and kdu_stripe_decompressor.h from apps/support folder in Kakadu source into iipsrv\windows\dependencies\includes
6. Copy cpp files jp2.cpp and jpx.cpp (apps/jp2 folder in Kakadu source) and also kdu_stripe_compressor.cpp and kdu_stripe_decompressor.cpp (apps/support folder in Kakadu source) into iipsrv\windows\dependencies\includes
Building IIPImage:
Updating project:
If you don't want to build with Memcached or Kakadu remove appropriate preprocessor definition
Project properties -> C/C++ -> Preprocessor -> Preprocessor Definitions: HAVE_KAKADU;HAVE_MEMCACHED;
If building with Kakadu 7.0 or higher add also preprocessor definition CORESYS_IMPORTS;
Building project:
1. You should have already copied header files of dependencies in iipsrv\windows\dependencies\includes and library files of dependencies in iipsrv\windows\dependencies\libs\x86 or x64
2. Open iipsrv\windows\iipsrv-MSVC2010.sln
3. Build Release|Win32 (or Release|x64)
4. Check, that iipsrv.exe was created in folder iipsrv\windows\Release (or x64\Release)