1 !INCLUDE ..\win32\common.mak
4 PLUGINS_EXT=saslNTLM.dll
9 !IF "$(GSSAPI)" == "CyberSafe"
10 PLUGINS_EXT=$(PLUGINS_EXT) saslGSSAPI.dll
14 PLUGINS_EXT=$(PLUGINS_EXT) saslSRP.dll
15 !IF "$(DO_SRP_SETPASS)" == "1"
16 SRP_FLAGS=/DDO_SRP_SETPASS=1
21 PLUGINS_EXT=$(PLUGINS_EXT) saslOTP.dll
25 PLUGINS_EXT=$(PLUGINS_EXT) saslLDAPDB.dll
27 # NB: linking to libsasl itself!!!
28 LDAP_FLAGS = /I $(LDAP_INCLUDE)
29 LDAP_LIBS = $(LDAP_LIB_BASE)\olber32.lib $(LDAP_LIB_BASE)\oldap32.lib ..\lib\libsasl.lib
32 !IF "$(SQL)" == "SQLITE"
33 PLUGINS_EXT=$(PLUGINS_EXT) saslSQLITE.dll
34 SQL_FLAGS= $(SQLITE_INCLUDES) /DHAVE_SQLITE=1
35 SQLITE_LIBS = /libpath:$(SQLITE_LIBPATH) libsqlite.lib
38 PLUGINS=saslANONYMOUS.dll \
46 generated_rc=saslANONYMOUS.rc saslPLAIN.rc saslCRAMMD5.rc saslDIGESTMD5.rc saslLOGIN.rc saslNTLM.rc saslGSSAPI.rc saslSRP.rc saslOTP.rc saslSASLDB.rc saslSQLITE.rc saslLDAPDB.rc
48 # WS2tcpip.h included in Visual Studio 7 provides getaddrinfo, ...
49 # emulation on Windows, so there is no need to build getaddrinfo.c
52 compat_sources = getaddrinfo.c getnameinfo.c
53 compat_objs = getaddrinfo.obj getnameinfo.obj
56 common_sources = plugin_common.c plugin_common.h
57 common_objs = plugin_common.obj $(compat_objs)
59 saslANONYMOUS_sources = anonymous.c anonymous_init.c $(common_sources)
60 saslANONYMOUS_objs = anonymous.obj anonymous_init.obj $(common_objs)
61 saslANONYMOUS_out = saslANONYMOUS.dll saslANONYMOUS.exp saslANONYMOUS.lib
63 saslPLAIN_sources = plain.c plain_init.c $(common_sources)
64 saslPLAIN_objs = plain.obj plain_init.obj $(common_objs)
65 saslPLAIN_out = saslPLAIN.dll saslPLAIN.exp saslPLAIN.lib
67 saslCRAMMD5_sources = cram.c crammd5_init.c $(common_sources)
68 saslCRAMMD5_objs = cram.obj crammd5_init.obj $(common_objs)
69 saslCRAMMD5_out = saslCRAMMD5.dll saslCRAMMD5.exp saslCRAMMD5.lib
71 saslDIGESTMD5_sources = digestmd5.c digestmd5_init.c $(common_sources)
72 saslDIGESTMD5_objs = digestmd5.obj digestmd5_init.obj $(common_objs)
73 saslDIGESTMD5_out = saslDIGESTMD5.dll saslDIGESTMD5.exp saslDIGESTMD5.lib
75 saslLOGIN_sources = login.c login_init.c $(common_sources)
76 saslLOGIN_objs = login.obj login_init.obj $(common_objs)
77 saslLOGIN_out = saslLOGIN.dll saslLOGIN.exp saslLOGIN.lib
79 saslNTLM_sources = ntlm.c ntlm_init.c $(common_sources)
80 saslNTLM_objs = ntlm.obj ntlm_init.obj $(common_objs)
81 saslNTLM_out = saslNTLM.dll saslNTLM.exp saslNTLM.lib
83 saslGSSAPI_sources = gssapi.c gssapiv2_init.c $(common_sources)
84 saslGSSAPI_objs = gssapi.obj gssapiv2_init.obj $(common_objs)
85 saslGSSAPI_out = saslGSSAPI.dll saslGSSAPI.exp saslGSSAPI.lib
87 saslSRP_sources = srp.c srp_init.c $(common_sources)
88 saslSRP_objs = srp.obj srp_init.obj $(common_objs)
89 saslSRP_out = saslSRP.dll saslSRP.exp saslSRP.lib
91 saslOTP_sources = otp.c otp_init.c $(common_sources)
92 saslOTP_objs = otp.obj otp_init.obj $(common_objs)
93 saslOTP_out = saslOTP.dll saslOTP.exp saslOTP.lib
95 saslSQL_sources = sql.c sql_init.c $(common_sources)
96 saslSQL_objs = sql.obj sql_init.obj $(common_objs)
97 # saslSQL_out is an agregation of all generated files for all SQL plugins
98 saslSQL_out = saslSQLITE.dll saslSQLITE.exp saslSQLITE.lib
100 saslLDAPDB_sources = ldapdb.c $(common_sources)
101 saslLDAPDB_objs = ldapdb.obj $(common_objs)
102 saslLDAPDB_out = saslLDAPDB.dll saslLDAPDB.exp saslLDAPDB.lib
104 !IF "$(NTLM)" == "1" || "$(SRP)" == "1" || "$(OTP)" == "1"
105 OPENSSL_FLAGS= /I $(OPENSSL_INCLUDE)
110 !IF "$(GSSAPI)" == "CyberSafe"
111 GSS_FLAGS= /I $(GSSAPI_INCLUDE) /D "HAVE_GSS_C_NT_HOSTBASED_SERVICE" /D "HAVE_GSS_C_NT_USER_NAME"
112 GSS_LIBS=/libpath:$(GSSAPI_LIBPATH) gssapi32.lib
118 DIGEST_FLAGS=/D "WITH_RC4"
121 libsasldb_sources = allockey.c db_berkeley.c
122 libsasldb_objs = allockey.obj db_berkeley.obj
124 saslSASLDB_sources = sasldb.c sasldb_init.c $(libsasldb_sources) $(common_sources)
125 saslSASLDB_objs = sasldb.obj sasldb_init.obj $(libsasldb_objs) $(common_objs)
126 saslSASLDB_out = saslSASLDB.dll saslSASLDB.exp saslSASLDB.lib
128 all_objs = $(saslANONYMOUS_objs) $(saslPLAIN_objs) $(saslCRAMMD5_objs) $(saslDIGESTMD5_objs) $(saslLOGIN_objs) $(saslNTLM_objs) $(saslGSSAPI_objs) $(saslSRP_objs) $(saslOTP_objs) $(saslSASLDB_objs) $(saslSQL_objs) $(saslLDAPDB_objs)
129 all_out = $(saslANONYMOUS_out) $(saslPLAIN_out) $(saslCRAMMD5_out) $(saslDIGESTMD5_out) $(saslLOGIN_out) $(saslNTLM_out) $(saslGSSAPI_out) $(saslSRP_out) $(saslOTP_out) $(saslSASLDB_out) $(saslSQL_out) $(saslLDAPDB_out)
131 # LIBSASL_EXPORTS is required to export additional DB routines from sasldb
132 DB_FLAGS = /I $(DB_INCLUDE) /I "..\sasldb" /D "LIBSASL_EXPORTS" /D "KEEP_DB_OPEN"
134 !IF $(TARGET_WIN_SYSTEM) >= 51
135 EXTRA_FLAGS = /D TARGET_WIN_SYSTEM=$(TARGET_WIN_SYSTEM) $(EXTRA_FLAGS)
138 EXTRA_FLAGS=$(EXTRA_FLAGS) $(DB_FLAGS) $(OPENSSL_FLAGS) $(GSS_FLAGS) $(SRP_FLAGS) $(SQL_FLAGS) $(DIGEST_FLAGS) $(LDAP_FLAGS)
139 CPPFLAGS = /I "..\win32\include" /I "." /I "..\include" $(EXTRA_FLAGS) /D "WIN32" /D "_WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL"
141 DB_LIBS=/libpath:$(DB_LIBPATH) $(DB_LIB)
142 OPENSSL_LIBS=/libpath:$(OPENSSL_LIBPATH) libeay32.lib ssleay32.lib
144 # Where to install files from this directory
145 libdir = $(prefix)\lib
146 bindir = $(prefix)\bin\sasl2
151 # /I flag to xcopy tells to treat the last parameter as directory and create all missing levels
153 # In order to force xcopy not to confirm if the second parameter is file or directory,
154 # the first parameter has to contain a wildcard character. For example, we use libsasl.l*,
155 # instead of libsasl.lib. Ugly, but works!
157 # Note, that we will copy all dlls here, not just $(PLUGINS). This is a bug, but it allows
158 # us to copy GSSAPI plugin, which might not be in $(PLUGINS).
161 @xcopy *.dll $(bindir) /I /F /Y
163 all-recursive : $(PLUGINS)
165 getaddrinfo.c: ..\lib\getaddrinfo.c
166 copy ..\lib\getaddrinfo.c .
168 getnameinfo.c: ..\lib\getnameinfo.c
169 copy ..\lib\getnameinfo.c .
171 allockey.c: ..\sasldb\allockey.c
172 copy ..\sasldb\allockey.c .
174 db_berkeley.c: ..\sasldb\db_berkeley.c
175 copy ..\sasldb\db_berkeley.c .
179 saslANONYMOUS.dll: $(saslANONYMOUS_objs) saslANONYMOUS.res
180 $(LINK32DLL) @<< $(LINK32DLL_FLAGS) /out:"saslANONYMOUS.dll" /implib:"saslANONYMOUS.lib" $(saslANONYMOUS_objs) saslANONYMOUS.res
183 saslPLAIN.dll: $(saslPLAIN_objs) saslPLAIN.res
184 $(LINK32DLL) @<< $(LINK32DLL_FLAGS) /out:"saslPLAIN.dll" /implib:"saslPLAIN.lib" $(saslPLAIN_objs) saslPLAIN.res
187 saslCRAMMD5.dll: $(saslCRAMMD5_objs) saslCRAMMD5.res
188 $(LINK32DLL) @<< $(LINK32DLL_FLAGS) /out:"saslCRAMMD5.dll" /implib:"saslCRAMMD5.lib" $(saslCRAMMD5_objs) saslCRAMMD5.res
191 saslDIGESTMD5.dll: $(saslDIGESTMD5_objs) saslDIGESTMD5.res
192 $(LINK32DLL) @<< $(LINK32DLL_FLAGS) /out:"saslDIGESTMD5.dll" /implib:"saslDIGESTMD5.lib" $(saslDIGESTMD5_objs) saslDIGESTMD5.res
195 saslLOGIN.dll: $(saslLOGIN_objs) saslLOGIN.res
196 $(LINK32DLL) @<< $(LINK32DLL_FLAGS) /out:"saslLOGIN.dll" /implib:"saslLOGIN.lib" $(saslLOGIN_objs) saslLOGIN.res
199 saslNTLM.dll: $(saslNTLM_objs) saslNTLM.res
200 $(LINK32DLL) @<< $(OPENSSL_LIBS) $(LINK32DLL_FLAGS) /out:"saslNTLM.dll" /implib:"saslNTLM.lib" $(saslNTLM_objs) saslNTLM.res
203 saslGSSAPI.dll: $(saslGSSAPI_objs) saslGSSAPI.res
204 $(LINK32DLL) @<< $(GSS_LIBS) $(LINK32DLL_FLAGS) /out:"saslGSSAPI.dll" /implib:"saslGSSAPI.lib" $(saslGSSAPI_objs) saslGSSAPI.res
207 saslSRP.dll: $(saslSRP_objs) saslSRP.res
208 $(LINK32DLL) @<< $(OPENSSL_LIBS) $(LINK32DLL_FLAGS) /out:"saslSRP.dll" /implib:"saslSRP.lib" $(saslSRP_objs) saslSRP.res
211 saslOTP.dll: $(saslOTP_objs) saslOTP.res
212 $(LINK32DLL) @<< $(OPENSSL_LIBS) $(LINK32DLL_FLAGS) /out:"saslOTP.dll" /implib:"saslOTP.lib" $(saslOTP_objs) saslOTP.res
215 saslSASLDB.dll: $(saslSASLDB_objs) saslSASLDB.res
216 $(LINK32DLL) @<< $(DB_LIBS) $(LINK32DLL_FLAGS) /out:"saslSASLDB.dll" /implib:"saslSASLDB.lib" $(saslSASLDB_objs) saslSASLDB.res
219 saslSQLITE.dll: $(saslSQL_objs) saslSQLITE.res
220 $(LINK32DLL) @<< $(SQLITE_LIBS) $(LINK32DLL_FLAGS) /out:"saslSQLITE.dll" /implib:"saslSQLITE.lib" $(saslSQL_objs) saslSQLITE.res
223 saslLDAPDB.dll: $(saslLDAPDB_objs) saslLDAPDB.res
224 $(LINK32DLL) @<< $(LDAP_LIBS) $(OPENSSL_LIBS) $(LINK32DLL_FLAGS) /out:"saslLDAPDB.dll" /implib:"saslLDAPDB.lib" $(saslLDAPDB_objs) saslLDAPDB.res
231 -@erase getaddrinfo.c
233 -@erase db_berkeley.c
234 -@erase getnameinfo.c
235 -@erase $(generated_rc)
261 VS_VERSION_INFO VERSIONINFO
262 FILEVERSION $(SASL_VERSION_MAJOR),$(SASL_VERSION_MINOR),$(SASL_VERSION_STEP),0
263 PRODUCTVERSION $(SASL_VERSION_MAJOR),$(SASL_VERSION_MINOR),$(SASL_VERSION_STEP),0
274 BLOCK "StringFileInfo"
278 VALUE "CompanyName", "Carnegie Mellon University\0"
279 VALUE "FileDescription", "CMU SASL $(@B) plugin\0"
280 VALUE "FileVersion", "$(SASL_VERSION_MAJOR).$(SASL_VERSION_MINOR).$(SASL_VERSION_STEP).0\0"
281 VALUE "InternalName", "$(@B)\0"
282 VALUE "LegalCopyright", "Copyright (c) Carnegie Mellon University 2005\0"
283 VALUE "OriginalFilename", "$(@B).dll\0"
284 VALUE "ProductName", "Carnegie Mellon University SASL\0"
285 VALUE "ProductVersion", "$(SASL_VERSION_MAJOR).$(SASL_VERSION_MINOR).$(SASL_VERSION_STEP)-0"
290 VALUE "Translation", 0x409, 1200