This file describes how to build liblouis.dll That is the only binary 
file needed by someone who wishes to use liblouis in an application. The 
tables are in the tables subdirectory of the liblouis distribution. For 
an overview of liblouis see README. 

First, obtain the liblouis source, either by downloading the latest 
tarball or from the Subversion repository. See HACKING for instructions. 
If you downloaded the tarball, unpack it.

To build liblouis.dll you will need the Microsoft command-line C/C++ 
tools. you will also have to set environment variables correctly. You 
can download the express versions of Visual Studio, MSVC and the 
Microsoft C/C++ SDK free. All have a batch file that sets environment 
variables and then displays a command prompt.

Next, go to the subdirectory windows. Edit the file configure.mk If you 
want 
32-bit unicode change the 2 in the line UCS=2 to a 4.

Now type

nmake /f Makefile.nmake

The directory will contain liblouis.dll and liblouis.lib, along with 
object files.


