To build for windows:
While former versions where built with Borland's free commandline tools, the resulting .dll and
.lib files are incompatible with MSVC. So, from this version on, MSVC is preferred compiler for 
Win32. You can still build the .dll with Borland tools. For instructions see below.

To build libnodave.dll with MSVC:
1.  Get and install MSVC. There is a freely available package from Microsoft containing only the
    compiler and linker. You need some windows header files also, which are available as part
    of the "Platform Software Development Kit (PSDK)". This PSDK contains also a make utility
    named nmake.
2.  Makefile is for LINUX. For Windows, you need the file MAKEFILE.VC
    Either remove the file Makefile or call make with -fMAKEFILE.VC.
3.  Running make with no target will build statically used versions of the test 
    programs and libnodave.dll
4.  Running make with target "dynamic" builds dynamically linked versions of the test 
    programs and libnodave.dll.
5.  If you have difficulties to rebuild libnodave.dll, e.g.:
     - you get more or less underscores
     - you get error messages when compiling
     - you get mangled names
     - you get error messages when linking
     - the recompiled .dll behaves different from the precompiled one
    Allways check MAKEFILE.VC.WINE. This is what I use do build the files I distribute. And
    besides all efforts to maintain other makefiles, I may forget to update them...

To build libnodave.dll with BorlandC:
1.  Get and install the free commandline tools from borland (www.borland.com).
2.  The Makefile is for LINUX. For Windows, you need the file MAKEFILE.MAK.
    Either remove the file Makefile or call make with -f MAKEFILE.MAK.
3.  Running make with no target will build statically linked versions of the test 
    programs and libnodave.dll
4.  Running make with target "dynamic" builds dynamically linked versions of the test 
    programs and libnodave.dll.

Using the .dll with C:
You can import either nodave.h or nodavesimple.h. While it makes no difference for most 
applications, it is recommended to use nodave.h, because:
 - it gives you full access to all internal structures and routines in case you want to do
   something unforeseen.
 - it is most certainly up to date because the library itself is build with it.
nodavesimple.h is merely there for people who want to interface with languages not yet
supported to give them a guideline what they need to define. 
In any case you must make sure that the conditionals BCCWIN and DAVE_LITTLE_ENDIAN are defined 
at the moment the preprocessor enters into nodave.h. You can do this by one of these means:
 - specify -DBCCWIN -DDAVELITTLE_ENDIAN on the compiler's commandline (recommended)
 - put the lines #define BCCWIN, #define DAVE_LITTLE_ENDIAN before #include "nodave.h"


Using the .dll with FreePascal or Delphi:
use unit nodave in your program. nodave.pas corresponds to the .dll generated with MSVC. Should
you want to recompile the .dll with BorlandC and then use it from Pascal, also recompile 
unit nodave from nodave.pas.borland. The difference is in the use of underscores in the names 
imported from the .dll. 

Using the .dll with C#:
There are C# versions of testMPI in the directory dot-net. There is also another README in that
directory. The files have been compiled and found to work with MONO 1.0.5 under Win2k. MONO is
an open source implementation of C# and the .NET framework.

Using the .dll with other languages:
Some people found it very difficult to port the structures daveInterface and daveConnection to 
other languages, e.g. VB. In fact, this is not necessary for 99% of all possible applications.
Member fields of these structure either never need to be accessed outside libnodave itself or
they can be accessed using some newly added helper functions. So, regardless how complicate
you think daveInterface is, all you need is a pointer to it.


