From MozillaWiki
Jump to: navigation, search

Building Cyrus SASL on Windows for the LDAP C SDK version 6 and later requires some special instructions.

You cannot use the cygwin environment - you must use the cmd environment provided by the MS Platform SDK.

Step 1: Download the software

You can get the Cyrus SASL software from here - http://asg.web.cmu.edu/sasl/sasl-library.html - The rest of the instructions below are for version 2.1.22. Unpack the software (you can just use tar xfz from a cygwin command line) to create the cyrus-sasl-2.1.22 directory.

Step 2: Apply the patches

The default Windows build of Cyrus SASL wants to use the sasldb, which requires Berkeley DB to be installed. The Mozilla LDAP C SDK is a client, so does not need the sasldb stuff. There are two patches which can be applied to make sasldb optional in the build. Patch 1 - ftp://ftp.mozilla.org/pub/mozilla.org/directory/c-sdk/patches/plugins_NTMakefile.patch

cd cyrus-sasl-2.1.22
patch -p0 < plugins_NTMakefile.patch

Patch 2 - ftp://ftp.mozilla.org/pub/mozilla.org/directory/c-sdk/patches/utils_NTMakefile.patch

cd cyrus-sasl-2.1.22
patch -p0 < utils_NTMakefile.patch

Step 3: Open a MS Platform SDK command window

I was not able to get it to build with cygwin. I was only able to get it to build in a command window invoked from the platform SDK, which can be found from the Start menu: Start->All Programs->Microsoft Platform SDK for Windows Server 2003 R2->Open Build Environment Window->Windows Server 2003 32-bit Build Environment->Set Win Svr 2003 32-bit Build Env (Retail) This will open a cmd window with the proper environment set up. NOTE that if you have a different system (XP, Vista) the menu may be slightly different (e.g. Platform SDK for Windows Vista instead of Server 2003). Other build environments may work but this one definitely works for me. You can also create a shortcut on your desktop.

You may need to add the following path to your INCLUDE environment variable:

set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\mfc

if the build step below complains about missing afxres.h. If this file/path does not exist, use the Start menu Start->Search to find this file and change INCLUDE above to use the correct path.

Step 4: Invoke the build

In your cmd window from Step 3, cd to your cyrus-sasl source directory and invoke nmake e.g.

cd C:\cyrus-sasl-2.1.22
nmake /f NTMakefile

If this works, then install:

nmake /f NTMakefile install

This will install the redistributable package in C:\CMU

  • CMU\include - header files
  • CMU\lib - libsasl.lib needed at build time
  • CMU\bin - libsasl.dll and manifest needed at run time, other executables
  • CMU\bin\sasl2 - plugins - saslANONYMOUS.dll, saslCRAMMD5.dll, saslDIGESTMD5.dll, saslLOGIN.dll, saslPLAIN.dll
nmake /f NTMakefile clean

will remove the built files if you need to start over again.