----------------------------------------------------------------------
GNU SASL FOR WINDOWS -- Instructions for the Windows port of GNU SASL
Copyright (C) 2010 Simon Josefsson
See the end for copying conditions.
----------------------------------------------------------------------

GNU SASL for Windows
====================

This directory contains files that will build ZIP files with Windows
binaries of GNU SASL.  The following ZIP files are built:

gsasl-1.5.2-x86.zip: Windows x86 32-bit binaries.  No external
dependencies.

gsasl-1.5.2-x64.zip: Windows x86 64-bit binaries.  No external
dependencies.

gsasl-1.5.2-x86-kfw322.zip: Windows x86 32-bit binaries.  Requires MIT
Kerberos for Windows 3.2.2.  Supports GSS-API and GS2.

License
-------

The core GNU SASL library is available under the LGPLv2+ license.  The
command line tool 'gsasl' is available under the GPLv3+ license.  This
documentation and the build scripts (e.g., Makefile) are licensed
under the GPLv3+.

Donate
------

If you find this work useful to you, please contribute back!
Contributions will help me develop and make future releases of GNU
SASL.

If you need customized support, please contact me directly, since I'm
available as a consultant.

include1::.donate.html[]

Testing
-------

Download the ZIP file and unpack it, and run the 'gsasl' tool.

For Kerberos testing, configure KfW and then invoke 'gsasl'.  The
following two screenshots demonstrates this:

image:gsasl-kfw1.png[]

image:gsasl-kfw2.png[]

For more information see the GNU SASL manual on Kerberos on Windows.

Build Environment
-----------------

I'm using Debian x86 testing with the MinGW cross-compiler.  You will
need Wine to run the self tests for "make check".

Building GNU SASL for Windows
-----------------------------

....................................................
$ mkdir mingw-w64
$ wget -q http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/experimental/buildsystem/makebuildroot-test.mk
$ $EDITOR makebuildroot-test.mk
       change TARGET_ARCH, GCC_FORTRAN, GCC_OBJC, GCC_BRANCH
$ make -f makebuildroot-test.mk
....................................................

Put mingw-w64/build/root/bin/ in your PATH.

The next step is to build GNU SASL itself.

....................................................
$ wget http://josefsson.org/gsasl4win/Makefile
$ make
....................................................

This will produce a ZIP file with the binaries.

Using the GnuTLS DLL from your Cygwin or MinGW program
------------------------------------------------------

Link with the libgsasl.dll.a file.

....................................................
$ cat > foo.c
#include <gsasl.h>
int main (void)
{
  printf ("foo %s\n", gsasl_check_version (NULL));
}
^D
$ gcc -o foo foo.c -Isomewhere/include somewhere/libgsasl.dll.a
....................................................

Then run the program.

....................................................
$ ./foo
foo 1.5.2
$
....................................................

Using the GNU SASL DLL from your Visual Studio program
----------------------------------------------------

The first step is create an import library.  Start a MSVS Command
Prompt, and go to the GnuTLS installation directory.

....................................................
C:\gsasl-1.5.2>lib /def:libgsasl-7.def
...
....................................................

This will create a libgsasl-7.lib that can be used as a import library
for Visual Studio projects.

Build a sample program to test it as follows:

....................................................
C:\gsasl-1.5.2>cl foo.c -Iinclude -Dssize_t=long libgsasl-7.lib
...
C:\gsasl-1.5.2>foo
foo 1.5.2
C:\gsasl-1.5.2>
....................................................

These steps are not fully polished yet, but appear to work.

Known problems
--------------

None so far!

Support
-------

Ask on mailto:help-gsasl@gnu.org[] for general problems.  If you wish
to contact me directly, try mailto:simon@josefsson.org[].
