win32/README
0678c04b
 ClamAV for Win32
 ----------------
 
8ab47ebe
 --- News ---
 
f3a6455f
 In order to support more advanced features planned in future releases, 
 ClamAV has switched to using OpenSSL for hashing. The ClamAV Visual Studio 
 project included with ClamAV's source code requires the OpenSSL 
 distributables to be placed in a specific directory. This article will 
 teach you how to compile OpenSSL on a Microsoft Windows system and how 
 to link ClamAV against OpenSSL.
 
 Read More here:
      http://blog.clamav.net/2014/07/compiling-openssl-for-windows.html
 
8ab47ebe
 Starting from version 0.98 the windows version of ClamAV requires all the
 input to be UTF-8 encoded.
 This affects:
 - the API, notably the cl_scanfile() function
 - clamd socket input, e.g. the commands SCAN, CONTSCAN, MUTLISCAN, etc.
 - clamd socket output, i.e replies to the above queries
 
 For legacy reasons ANSI (i.e. CP_ACP) input will still be accepted and
 processed as before, but with two important remarks:
 First, socket replies to ANSI queries will still be UTF-8 encoded.
 Second, ANSI sequences which are also valid UTF-8 sequences will be handled
 as UTF-8.
 
 As a side note, console output (stdin and stderr) will always be OEM encoded,
 even when redirected to a file.
 
 
 --- Requirements ---
0678c04b
 
 To build the source code you will need:
 - Git for windows with a git "shell"
76f1a1e4
 - Microsoft Visual Studio 2010 SP1: the express version builds the 32bit
 target just fine but it requires a decent amount of fiddling in order to
 compile the 64bit target; this configuration is therefore not supported.
0678c04b
 
03adf2a5
 To run the binaries at least Windows XP is required.
0678c04b
 
8ab47ebe
 
 --- Getting the code ---
0678c04b
 
 The win32 source code is merged in the ClamAV repository and is available
 via git.
 Clone the repository with: git clone git://git.clamav.net/git/clamav-devel
 See http://www.clamav.net/download/sources for more info.
 
 
8ab47ebe
 --- Code configuration ---
0678c04b
 
 After downloading the source code, minimal configuration is required:
 just run the win32/configure.bat script *from within the git shell*.
 Skip this step if you are building from an official release tarball.
 
 
8ab47ebe
 --- Compilation ---
0678c04b
 
 Open win32/ClamAV.sln in Visual Studio and build all.
44492e23
 The output directory for the binaries is either /win32/(Win32|x64)/Debug or
 /win32/(Win32|x64)/Release depending on the configuration you pick.
0678c04b
 
1bb5a24d
 Note: at the time of writing Batch Build is broken in VS10:
 https://connect.microsoft.com/VisualStudio/feedback/details/556158
f060a089
 Use MSBuild instead.
1bb5a24d
 
0678c04b
 
8ab47ebe
 --- Special notes ---
0678c04b
 
 The ClamAV tools in win32 are the same as in unix, so refer to their respective
 manpage for general usage.
 The major differences are listed below:
 - Config files path search order:
8ab47ebe
   1- The content of the registry key
      "HKEY_LOCAL_MACHINE/Software/ClamAV/ConfDir"
0678c04b
   2- The directory where libclamav.dll is located
   3- "C:\ClamAV"
 
 - Database files path search order:
8ab47ebe
   1- The content of the registry key
      "HKEY_LOCAL_MACHINE/Software/ClamAV/DataDir"
   2- The directory "database" inside the directory where libclamav.dll is
      located
0678c04b
   3- "C:\ClamAV\db"
 
 - Globbing
8ab47ebe
 Since the windows command prompt doesn't take care of wildcard expansion,
 minimal emulation of unix glob() is performed internally.
 It supports "*" and "?" only.
0678c04b
 
 - File paths
 Please always use the backslash as the path separator.
 SMB Network shares and UNC paths are supported.
 
9a045601
 - Debug builds
 Malloc in debug (as opposed to release) mode fails after allocating some 90k
 chunks; such builds won't be able to handle large databases.
 Just do yourself a favour and always build in release mode.
0678c04b
 
844e5608
 
8ab47ebe
 --- Special thanks ---
844e5608
 
 Special thanks to Gianluigi Tiesi and Mark Pizzolato for their valuable help in
 coding and testing.