% cd /cygdrive/c/sasl/plugins % sh makeinit.sh
To build a debug verison, use "nmake /f NTMakefile CFG=Debug". For a production version, "nmake /f NTMakefile CFG=Release". If you don't specify CFG parameter, production version will be built by default.
As Windows build requires SleepyCat, there are additional options
that has to be provided to NMake on the command line.
If SleepyCat sources are located in c:\packages\db\4.1.24
and built library in c:\packages\db\4.1.24\build_win32\Release_static,
you should add something like
DB_INCLUDE=c:\packages\db\4.1.24\build_win32
and DB_LIBPATH=c:\packages\db\4.1.24\build_win32\Release_static.
Also note, that the DB_LIB defines the name of the SleepyCat library
to link against. It defaults to libdb41s.lib.
If you don't pass the parameters described above, NMake will pick the
defaults, which is probably not what you want.
Another option of interest is STATIC. It specifies which version of the standard C library to use. The default is "no", meaning that the standard C library from the MSVCRT.DLL will be used.
Example:
Targeting Windows 2000 and IE 5.0 RETAIL C:\Program Files\Microsoft SDK> cd \sasl C:\sasl> nmake /f NTMakefile DB_INCLUDE=c:\packages\db\4.1.24\build_win32 DB_LIBPATH=c:\packages\db\4.1.24\build_win32\Release_static No configuration specified. Defaulting to Release. Using MSVCRT.dll as C library by default. Defaulting SleepyCat library name to libdb41s.lib. Codegeneration defaulting to /MD. ...
SASL NTMakefile also understands "clean" target that you can use to clean all files generated by the compiler.
C:\sasl> nmake /f NTMakefile clean Microsoft (R) Program Maintenance Utility Version 7.00.9466 Copyright (C) Microsoft Corporation. All rights reserved. cd lib && nmake /f NTMakefile clean Microsoft (R) Program Maintenance Utility Version 7.00.9466 Copyright (C) Microsoft Corporation. All rights reserved. No configuration specified. Defaulting to Release. Using MSVCRT.dll as C library by default. Defaulting SleepyCat library name to libdb41s.lib. Defaulting SleepyCat include path to c:\work\isode\db\build_win32. Defaulting SleepyCat library path to c:\work\isode\db\build_win32\Release_static. ...
Specify "GSSAPI=<type>" parameter if you want to enable GSSAPI plugin. Currently only <type>=CyberSafe is supported and this will build the plugin that links against CyberSafe Kerberos. GSSAPI depends on GSSAPI_INCLUDE and GSSAPI_LIBPATH parameters. You can either specify them on the command line or edit the defaults in win32\common.mak
Specify "SQL=<type>" parameter if you want to enable SQL plugin. Currently only <type>=SQLITE is supported and this will build the plugin that links against SQLITE (www.sqlite.org). SQL=<SQLITE> depends on SQLITE_INCLUDES and SQLITE_LIBPATH parameters. You can either specify them on the command line or edit the defaults in win32\common.mak
Specify "NTLM=1" parameter if you want to enable NTLM plugin. I.e. "nmake /f NTMakefile NTLM=1"
Specify "SRP=1" parameter if you want to enable SRP plugin. You can also specify "DO_SRP_SETPASS=1" if you want to enable SRP setpass functionality.
Specify "OTP=1" parameter if you want to enable OTP plugin.
NTLM, SRP and OTP plugins depend on OpenSSL. You can either specify OPENSSL_INCLUDE and OPENSSL_LIBPATH parameters on the command line or edit the defaults in win32\common.mak Note, that unless you are building one of those plugins, OpenSSL is not required!
If you want to build multiple additional plugins at once, you can specify multiple parameters described above, for example "nmake /f NTMakefile NTLM=1 SRP=1 OPT=1"