1######################################################################## 2# 3# Copyright (c) 2009, Secure Endpoints Inc. 4# All rights reserved. 5# 6# Redistribution and use in source and binary forms, with or without 7# modification, are permitted provided that the following conditions 8# are met: 9# 10# - Redistributions of source code must retain the above copyright 11# notice, this list of conditions and the following disclaimer. 12# 13# - Redistributions in binary form must reproduce the above copyright 14# notice, this list of conditions and the following disclaimer in 15# the documentation and/or other materials provided with the 16# distribution. 17# 18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 21# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 22# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 23# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 24# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 28# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29# POSSIBILITY OF SUCH DAMAGE. 30# 31 32RELDIR=lib\gssapi 33 34!include ../../windows/NTMakefile.w32 35 36krb5src = \ 37 krb5/8003.c \ 38 krb5/accept_sec_context.c \ 39 krb5/acquire_cred.c \ 40 krb5/add_cred.c \ 41 krb5/address_to_krb5addr.c \ 42 krb5/aeap.c \ 43 krb5/arcfour.c \ 44 krb5/canonicalize_name.c \ 45 krb5/creds.c \ 46 krb5/ccache_name.c \ 47 krb5/cfx.c \ 48 krb5/cfx.h \ 49 krb5/compare_name.c \ 50 krb5/compat.c \ 51 krb5/context_time.c \ 52 krb5/copy_ccache.c \ 53 krb5/decapsulate.c \ 54 krb5/delete_sec_context.c \ 55 krb5/display_name.c \ 56 krb5/display_status.c \ 57 krb5/duplicate_name.c \ 58 krb5/encapsulate.c \ 59 krb5/export_name.c \ 60 krb5/export_sec_context.c \ 61 krb5/external.c \ 62 krb5/get_mic.c \ 63 krb5/gsskrb5_locl.h \ 64 krb5/import_name.c \ 65 krb5/import_sec_context.c \ 66 krb5/indicate_mechs.c \ 67 krb5/init.c \ 68 krb5/init_sec_context.c \ 69 krb5/inquire_context.c \ 70 krb5/inquire_cred.c \ 71 krb5/inquire_cred_by_mech.c \ 72 krb5/inquire_cred_by_oid.c \ 73 krb5/inquire_mechs_for_name.c \ 74 krb5/inquire_names_for_mech.c \ 75 krb5/inquire_sec_context_by_oid.c \ 76 krb5/process_context_token.c \ 77 krb5/prf.c \ 78 krb5/release_buffer.c \ 79 krb5/release_cred.c \ 80 krb5/release_name.c \ 81 krb5/sequence.c \ 82 krb5/store_cred.c \ 83 krb5/set_cred_option.c \ 84 krb5/set_sec_context_option.c \ 85 krb5/ticket_flags.c \ 86 krb5/unwrap.c \ 87 krb5/verify_mic.c \ 88 krb5/wrap.c 89 90mechsrc = \ 91 mech/context.h \ 92 mech/context.c \ 93 mech/cred.h \ 94 mech/gss_accept_sec_context.c \ 95 mech/gss_acquire_cred.c \ 96 mech/gss_add_cred.c \ 97 mech/gss_add_oid_set_member.c \ 98 mech/gss_aeap.c \ 99 mech/gss_buffer_set.c \ 100 mech/gss_canonicalize_name.c \ 101 mech/gss_compare_name.c \ 102 mech/gss_context_time.c \ 103 mech/gss_create_empty_oid_set.c \ 104 mech/gss_cred.c \ 105 mech/gss_decapsulate_token.c \ 106 mech/gss_delete_sec_context.c \ 107 mech/gss_display_name.c \ 108 mech/gss_display_status.c \ 109 mech/gss_duplicate_name.c \ 110 mech/gss_duplicate_oid.c \ 111 mech/gss_encapsulate_token.c \ 112 mech/gss_export_name.c \ 113 mech/gss_export_sec_context.c \ 114 mech/gss_get_mic.c \ 115 mech/gss_import_name.c \ 116 mech/gss_import_sec_context.c \ 117 mech/gss_indicate_mechs.c \ 118 mech/gss_init_sec_context.c \ 119 mech/gss_inquire_context.c \ 120 mech/gss_inquire_cred.c \ 121 mech/gss_inquire_cred_by_mech.c \ 122 mech/gss_inquire_cred_by_oid.c \ 123 mech/gss_inquire_mechs_for_name.c \ 124 mech/gss_inquire_names_for_mech.c \ 125 mech/gss_krb5.c \ 126 mech/gss_mech_switch.c \ 127 mech/gss_mo.c \ 128 mech/gss_names.c \ 129 mech/gss_oid.c \ 130 mech/gss_oid_equal.c \ 131 mech/gss_oid_to_str.c \ 132 mech/gss_process_context_token.c \ 133 mech/gss_pseudo_random.c \ 134 mech/gss_release_buffer.c \ 135 mech/gss_release_cred.c \ 136 mech/gss_release_name.c \ 137 mech/gss_release_oid.c \ 138 mech/gss_release_oid_set.c \ 139 mech/gss_seal.c \ 140 mech/gss_set_cred_option.c \ 141 mech/gss_set_sec_context_option.c \ 142 mech/gss_sign.c \ 143 mech/gss_store_cred.c \ 144 mech/gss_test_oid_set_member.c \ 145 mech/gss_unseal.c \ 146 mech/gss_unwrap.c \ 147 mech/gss_utils.c \ 148 mech/gss_verify.c \ 149 mech/gss_verify_mic.c \ 150 mech/gss_wrap.c \ 151 mech/gss_wrap_size_limit.c \ 152 mech/gss_inquire_sec_context_by_oid.c \ 153 mech/mech_switch.h \ 154 mech/mechqueue.h \ 155 mech/mech_locl.h \ 156 mech/name.h \ 157 mech/utils.h 158 159spnegosrc = \ 160 spnego/accept_sec_context.c \ 161 spnego/compat.c \ 162 spnego/context_stubs.c \ 163 spnego/cred_stubs.c \ 164 spnego/external.c \ 165 spnego/init_sec_context.c \ 166 spnego/spnego_locl.h 167 168ntlmsrc = \ 169 ntlm/accept_sec_context.c \ 170 ntlm/acquire_cred.c \ 171 ntlm/add_cred.c \ 172 ntlm/canonicalize_name.c \ 173 ntlm/compare_name.c \ 174 ntlm/context_time.c \ 175 ntlm/crypto.c \ 176 ntlm/delete_sec_context.c \ 177 ntlm/display_name.c \ 178 ntlm/display_status.c \ 179 ntlm/duplicate_name.c \ 180 ntlm/export_name.c \ 181 ntlm/export_sec_context.c \ 182 ntlm/external.c \ 183 ntlm/ntlm.h \ 184 ntlm/import_name.c \ 185 ntlm/import_sec_context.c \ 186 ntlm/indicate_mechs.c \ 187 ntlm/init_sec_context.c \ 188 ntlm/inquire_context.c \ 189 ntlm/inquire_cred.c \ 190 ntlm/inquire_cred_by_mech.c \ 191 ntlm/inquire_mechs_for_name.c \ 192 ntlm/inquire_names_for_mech.c \ 193 ntlm/process_context_token.c \ 194 ntlm/release_cred.c \ 195 ntlm/release_name.c \ 196 ntlm/kdc.c 197 198$(OBJ)\ntlm\ntlm-private.h: $(ntlmsrc) 199 $(PERL) ../../cf/make-proto.pl -q -P remove -p $@ $(ntlmsrc) 200 201$(OBJ)\krb5\gsskrb5-private.h: $(krb5src) 202 $(PERL) ../../cf/make-proto.pl -q -P remove -p $@ $(krb5src) 203 204$(OBJ)\spnego\spnego-private.h: $(spnegosrc) 205 $(PERL) ../../cf/make-proto.pl -q -P remove -p $@ $(spnegosrc) 206 207gssapi_files = $(OBJ)\gssapi\asn1_gssapi_asn1.x 208 209spnego_files = $(OBJ)\spnego\asn1_spnego_asn1.x 210 211$(gssapi_files:.x=.c): $$(@R).x 212 213$(spnego_files:.x=.c): $$(@R).x 214 215$(gssapi_files) $(OBJ)\gssapi\gssapi_asn1.hx $(OBJ)\gssapi\gssapi_asn1-priv.hx: \ 216$(BINDIR)\asn1_compile.exe mech\gssapi.asn1 217 cd $(OBJ)\gssapi 218 $(BINDIR)\asn1_compile.exe --one-code-file $(SRCDIR)\mech\gssapi.asn1 gssapi_asn1 \ 219 || ( $(RM) $(OBJ)\gssapi\gssapi_asn1.h ; exit /b 1 ) 220 cd $(SRCDIR) 221 222$(spnego_files) $(OBJ)\spnego\spnego_asn1.hx $(OBJ)\spnego\spnego_asn1-priv.hx: \ 223$(BINDIR)\asn1_compile.exe spnego\spnego.asn1 224 cd $(OBJ)\spnego 225 $(BINDIR)\asn1_compile --one-code-file --sequence=MechTypeList \ 226 $(SRCDIR)\spnego\spnego.asn1 spnego_asn1 \ 227 || ( $(RM) $(OBJ)\spnego\spnego_asn1.h ; exit /b 1 ) 228 cd $(SRCDIR) 229 230$(OBJ)\gkrb5_err.c $(OBJ)\gkrb5_err.h: krb5\gkrb5_err.et 231 cd $(OBJ) 232 $(BINDIR)\compile_et.exe $(SRCDIR)\krb5\gkrb5_err.et 233 cd $(SRCDIR) 234 235INCFILES= \ 236 $(INCDIR)\gssapi.h \ 237 $(INCDIR)\gssapi\gssapi.h \ 238 $(INCDIR)\gssapi\gssapi_krb5.h \ 239 $(INCDIR)\gssapi\gssapi_oid.h \ 240 $(INCDIR)\gssapi\gssapi_ntlm.h \ 241 $(INCDIR)\gssapi\gssapi_spnego.h \ 242 $(INCDIR)\gssapi\gkrb5_err.h \ 243 $(OBJ)\ntlm\ntlm-private.h \ 244 $(OBJ)\spnego\spnego-private.h \ 245 $(OBJ)\krb5\gsskrb5-private.h \ 246 $(OBJ)\gkrb5_err.h \ 247 $(OBJ)\gssapi\gssapi_asn1.h \ 248 $(OBJ)\gssapi\gssapi_asn1-priv.h \ 249 $(OBJ)\spnego\spnego_asn1.h \ 250 $(OBJ)\spnego\spnego_asn1-priv.h 251 252all:: $(INCFILES) 253 254libgssapi_OBJs = \ 255 $(OBJ)\krb5/8003.obj \ 256 $(OBJ)\krb5/accept_sec_context.obj \ 257 $(OBJ)\krb5/acquire_cred.obj \ 258 $(OBJ)\krb5/add_cred.obj \ 259 $(OBJ)\krb5/address_to_krb5addr.obj \ 260 $(OBJ)\krb5/aeap.obj \ 261 $(OBJ)\krb5/arcfour.obj \ 262 $(OBJ)\krb5/canonicalize_name.obj \ 263 $(OBJ)\krb5/creds.obj \ 264 $(OBJ)\krb5/ccache_name.obj \ 265 $(OBJ)\krb5/cfx.obj \ 266 $(OBJ)\krb5/compare_name.obj \ 267 $(OBJ)\krb5/compat.obj \ 268 $(OBJ)\krb5/context_time.obj \ 269 $(OBJ)\krb5/copy_ccache.obj \ 270 $(OBJ)\krb5/decapsulate.obj \ 271 $(OBJ)\krb5/delete_sec_context.obj \ 272 $(OBJ)\krb5/display_name.obj \ 273 $(OBJ)\krb5/display_status.obj \ 274 $(OBJ)\krb5/duplicate_name.obj \ 275 $(OBJ)\krb5/encapsulate.obj \ 276 $(OBJ)\krb5/export_name.obj \ 277 $(OBJ)\krb5/export_sec_context.obj \ 278 $(OBJ)\krb5/external.obj \ 279 $(OBJ)\krb5/get_mic.obj \ 280 $(OBJ)\krb5/import_name.obj \ 281 $(OBJ)\krb5/import_sec_context.obj \ 282 $(OBJ)\krb5/indicate_mechs.obj \ 283 $(OBJ)\krb5/init.obj \ 284 $(OBJ)\krb5/init_sec_context.obj \ 285 $(OBJ)\krb5/inquire_context.obj \ 286 $(OBJ)\krb5/inquire_cred.obj \ 287 $(OBJ)\krb5/inquire_cred_by_mech.obj \ 288 $(OBJ)\krb5/inquire_cred_by_oid.obj \ 289 $(OBJ)\krb5/inquire_mechs_for_name.obj \ 290 $(OBJ)\krb5/inquire_names_for_mech.obj \ 291 $(OBJ)\krb5/inquire_sec_context_by_oid.obj \ 292 $(OBJ)\krb5/process_context_token.obj \ 293 $(OBJ)\krb5/prf.obj \ 294 $(OBJ)\krb5/release_buffer.obj \ 295 $(OBJ)\krb5/release_cred.obj \ 296 $(OBJ)\krb5/release_name.obj \ 297 $(OBJ)\krb5/sequence.obj \ 298 $(OBJ)\krb5/store_cred.obj \ 299 $(OBJ)\krb5/set_cred_option.obj \ 300 $(OBJ)\krb5/set_sec_context_option.obj \ 301 $(OBJ)\krb5/ticket_flags.obj \ 302 $(OBJ)\krb5/unwrap.obj \ 303 $(OBJ)\krb5/verify_mic.obj \ 304 $(OBJ)\krb5/wrap.obj \ 305 $(OBJ)\mech/context.obj \ 306 $(OBJ)\mech/gss_accept_sec_context.obj \ 307 $(OBJ)\mech/gss_acquire_cred.obj \ 308 $(OBJ)\mech/gss_add_cred.obj \ 309 $(OBJ)\mech/gss_add_oid_set_member.obj \ 310 $(OBJ)\mech/gss_aeap.obj \ 311 $(OBJ)\mech/gss_buffer_set.obj \ 312 $(OBJ)\mech/gss_canonicalize_name.obj \ 313 $(OBJ)\mech/gss_compare_name.obj \ 314 $(OBJ)\mech/gss_context_time.obj \ 315 $(OBJ)\mech/gss_create_empty_oid_set.obj \ 316 $(OBJ)\mech/gss_cred.obj \ 317 $(OBJ)\mech/gss_decapsulate_token.obj \ 318 $(OBJ)\mech/gss_delete_sec_context.obj \ 319 $(OBJ)\mech/gss_display_name.obj \ 320 $(OBJ)\mech/gss_display_status.obj \ 321 $(OBJ)\mech/gss_duplicate_name.obj \ 322 $(OBJ)\mech/gss_duplicate_oid.obj \ 323 $(OBJ)\mech/gss_encapsulate_token.obj \ 324 $(OBJ)\mech/gss_export_name.obj \ 325 $(OBJ)\mech/gss_export_sec_context.obj \ 326 $(OBJ)\mech/gss_get_mic.obj \ 327 $(OBJ)\mech/gss_import_name.obj \ 328 $(OBJ)\mech/gss_import_sec_context.obj \ 329 $(OBJ)\mech/gss_indicate_mechs.obj \ 330 $(OBJ)\mech/gss_init_sec_context.obj \ 331 $(OBJ)\mech/gss_inquire_context.obj \ 332 $(OBJ)\mech/gss_inquire_cred.obj \ 333 $(OBJ)\mech/gss_inquire_cred_by_mech.obj \ 334 $(OBJ)\mech/gss_inquire_cred_by_oid.obj \ 335 $(OBJ)\mech/gss_inquire_mechs_for_name.obj \ 336 $(OBJ)\mech/gss_inquire_names_for_mech.obj \ 337 $(OBJ)\mech/gss_krb5.obj \ 338 $(OBJ)\mech/gss_mech_switch.obj \ 339 $(OBJ)\mech/gss_mo.obj \ 340 $(OBJ)\mech/gss_names.obj \ 341 $(OBJ)\mech/gss_oid.obj \ 342 $(OBJ)\mech/gss_oid_equal.obj \ 343 $(OBJ)\mech/gss_oid_to_str.obj \ 344 $(OBJ)\mech/gss_process_context_token.obj \ 345 $(OBJ)\mech/gss_pseudo_random.obj \ 346 $(OBJ)\mech/gss_release_buffer.obj \ 347 $(OBJ)\mech/gss_release_cred.obj \ 348 $(OBJ)\mech/gss_release_name.obj \ 349 $(OBJ)\mech/gss_release_oid.obj \ 350 $(OBJ)\mech/gss_release_oid_set.obj \ 351 $(OBJ)\mech/gss_seal.obj \ 352 $(OBJ)\mech/gss_set_cred_option.obj \ 353 $(OBJ)\mech/gss_set_sec_context_option.obj \ 354 $(OBJ)\mech/gss_sign.obj \ 355 $(OBJ)\mech/gss_store_cred.obj \ 356 $(OBJ)\mech/gss_test_oid_set_member.obj \ 357 $(OBJ)\mech/gss_unseal.obj \ 358 $(OBJ)\mech/gss_unwrap.obj \ 359 $(OBJ)\mech/gss_utils.obj \ 360 $(OBJ)\mech/gss_verify.obj \ 361 $(OBJ)\mech/gss_verify_mic.obj \ 362 $(OBJ)\mech/gss_wrap.obj \ 363 $(OBJ)\mech/gss_wrap_size_limit.obj \ 364 $(OBJ)\mech/gss_inquire_sec_context_by_oid.obj \ 365 $(OBJ)\spnego/accept_sec_context.obj \ 366 $(OBJ)\spnego/compat.obj \ 367 $(OBJ)\spnego/context_stubs.obj \ 368 $(OBJ)\spnego/cred_stubs.obj \ 369 $(OBJ)\spnego/external.obj \ 370 $(OBJ)\spnego/init_sec_context.obj \ 371 $(OBJ)\ntlm/accept_sec_context.obj \ 372 $(OBJ)\ntlm/acquire_cred.obj \ 373 $(OBJ)\ntlm/add_cred.obj \ 374 $(OBJ)\ntlm/canonicalize_name.obj \ 375 $(OBJ)\ntlm/compare_name.obj \ 376 $(OBJ)\ntlm/context_time.obj \ 377 $(OBJ)\ntlm/crypto.obj \ 378 $(OBJ)\ntlm/delete_sec_context.obj \ 379 $(OBJ)\ntlm/display_name.obj \ 380 $(OBJ)\ntlm/display_status.obj \ 381 $(OBJ)\ntlm/duplicate_name.obj \ 382 $(OBJ)\ntlm/export_name.obj \ 383 $(OBJ)\ntlm/export_sec_context.obj \ 384 $(OBJ)\ntlm/external.obj \ 385 $(OBJ)\ntlm/import_name.obj \ 386 $(OBJ)\ntlm/import_sec_context.obj \ 387 $(OBJ)\ntlm/indicate_mechs.obj \ 388 $(OBJ)\ntlm/init_sec_context.obj \ 389 $(OBJ)\ntlm/inquire_context.obj \ 390 $(OBJ)\ntlm/inquire_cred.obj \ 391 $(OBJ)\ntlm/inquire_cred_by_mech.obj \ 392 $(OBJ)\ntlm/inquire_mechs_for_name.obj \ 393 $(OBJ)\ntlm/inquire_names_for_mech.obj \ 394 $(OBJ)\ntlm/process_context_token.obj \ 395 $(OBJ)\ntlm/release_cred.obj \ 396 $(OBJ)\ntlm/release_name.obj \ 397 $(OBJ)\ntlm/kdc.obj \ 398 $(OBJ)\gkrb5_err.obj \ 399 $(spnego_files:.x=.obj) \ 400 $(gssapi_files:.x=.obj) 401 402GCOPTS=-I$(SRCDIR) -I$(OBJ) -Igssapi -DBUILD_GSSAPI_LIB 403 404{$(OBJ)\krb5}.c{$(OBJ)\krb5}.obj:: 405 $(C2OBJ_NP) -Fo$(OBJ)\krb5\ -Fd$(OBJ)\krb5\ -I$(OBJ)\krb5 $(GCOPTS) 406 407{krb5}.c{$(OBJ)\krb5}.obj:: 408 $(C2OBJ_NP) -Fo$(OBJ)\krb5\ -Fd$(OBJ)\krb5\ -I$(OBJ)\krb5 $(GCOPTS) -DASN1_LIB 409 410{$(OBJ)\mech}.c{$(OBJ)\mech}.obj:: 411 $(C2OBJ_NP) -Fo$(OBJ)\mech\ -Fd$(OBJ)\mech\ -I$(OBJ)\mech $(GCOPTS) 412 413{mech}.c{$(OBJ)\mech}.obj:: 414 $(C2OBJ_NP) -Fo$(OBJ)\mech\ -Fd$(OBJ)\mech\ -I$(OBJ)\mech -I$(OBJ)\gssapi $(GCOPTS) -DASN1_LIB 415 416{$(OBJ)\ntlm}.c{$(OBJ)\ntlm}.obj:: 417 $(C2OBJ_NP) -Fo$(OBJ)\ntlm\ -Fd$(OBJ)\ntlm\ -I$(OBJ)\ntlm $(GCOPTS) 418 419{ntlm}.c{$(OBJ)\ntlm}.obj:: 420 $(C2OBJ_NP) -Fo$(OBJ)\ntlm\ -Fd$(OBJ)\ntlm\ -I$(OBJ)\ntlm $(GCOPTS) -DASN1_LIB 421 422{$(OBJ)\spnego}.c{$(OBJ)\spnego}.obj:: 423 $(C2OBJ_NP) -Fo$(OBJ)\spnego\ -Fd$(OBJ)\spnego\ -I$(OBJ)\spnego $(GCOPTS) 424 425{spnego}.c{$(OBJ)\spnego}.obj:: 426 $(C2OBJ_NP) -Fo$(OBJ)\spnego\ -Fd$(OBJ)\spnego\ -I$(OBJ)\spnego -Imech $(GCOPTS) -DASN1_LIB 427 428{$(OBJ)\gssapi}.c{$(OBJ)\gssapi}.obj:: 429 $(C2OBJ_NP) -Fo$(OBJ)\gssapi\ -Fd$(OBJ)\gssapi\ -I$(OBJ)\gssapi $(GCOPTS) 430 431{$(OBJ)}.c{$(OBJ)}.obj:: 432 $(C2OBJ_P) $(GCOPTS) 433 434{$(OBJ)\spnego}.x{$(OBJ)\spnego}.c: 435 $(CP) $** $@ 436 437{$(OBJ)\gssapi}.x{$(OBJ)\gssapi}.c: 438 $(CP) $** $@ 439 440{gssapi}.h{$(INCDIR)\gssapi}.h: 441 $(CP) $** $@ 442 443{$(OBJ)}.h{$(INCDIR)\gssapi}.h: 444 $(CP) $** $@ 445 446{$(OBJ)\gssapi}.hx{$(OBJ)\gssapi}.h: 447 $(CP) $** $@ 448 449{$(OBJ)\spnego}.hx{$(OBJ)\spnego}.h: 450 $(CP) $** $@ 451 452LIBGSSAPI_LIBS=\ 453 $(LIBROKEN) \ 454 $(LIBHEIMDAL) \ 455 $(LIBHEIMNTLM) \ 456 $(LIBCOMERR) 457 458LIBGSSAPI_SDKLIBS=\ 459 $(PTHREAD_LIB) 460 461!ifndef STATICLIBS 462 463RES=$(OBJ)\libgssapi-version.res 464 465$(BINDIR)\gssapi.dll: $(libgssapi_OBJs) $(RES) 466 $(DLLGUILINK_C) -implib:$(LIBGSSAPI) \ 467 -out:$(BINDIR)\gssapi.dll \ 468 -def:libgssapi-exports.def \ 469 $(LIBGSSAPI_LIBS) $(RES) $(LIBGSSAPI_SDKLIBS) @<< 470$(libgssapi_OBJs: = 471) 472<< 473 $(DLLPREP_NODIST) 474 475$(LIBGSSAPI): $(BINDIR)\gssapi.dll 476 477clean:: 478 -$(RM) $(BINDIR)\gssapi.* 479 480!else 481 482$(LIBGSSAPI): $(libgssapi_OBJs) 483 $(LIBCON_C) -OUT:$@ $(LIBGSSAPI_LIBS) $(LIBGSSAPI_SDKLIBS) @<< 484$(libgssapi_OBJs: = 485) 486<< 487 488!endif 489 490all:: $(LIBGSSAPI) 491 492clean:: 493 -$(RM) $(LIBGSSAPI) 494 495prep:: mkdirs-gss 496 497mkdirs-gss: 498!if !exist($(OBJ)\ntlm) 499 $(MKDIR) $(OBJ)\ntlm 500!endif 501!if !exist($(OBJ)\krb5) 502 $(MKDIR) $(OBJ)\krb5 503!endif 504!if !exist($(OBJ)\spnego) 505 $(MKDIR) $(OBJ)\spnego 506!endif 507!if !exist($(OBJ)\mech) 508 $(MKDIR) $(OBJ)\mech 509!endif 510!if !exist($(OBJ)\gssapi) 511 $(MKDIR) $(OBJ)\gssapi 512!endif 513 514clean:: 515 -$(RM) $(OBJ)\ntlm\*.* 516 -$(RM) $(OBJ)\krb5\*.* 517 -$(RM) $(OBJ)\spnego\*.* 518 -$(RM) $(OBJ)\mech\*.* 519 -$(RM) $(OBJ)\gssapi\*.* 520 521all-tools:: $(BINDIR)\gsstool.exe 522 523$(BINDIR)\gsstool.exe: $(OBJ)\gsstool.obj $(OBJ)\gss-commands.obj $(LIBGSSAPI) $(LIBROKEN) $(LIBSL) $(LIBVERS) 524 $(EXECONLINK) 525 526$(OBJ)\gss-commands.c $(OBJ)\gss-commands.h: gss-commands.in 527 cd $(OBJ) 528 $(CP) $(SRCDIR)\gss-commands.in gss-commands.in 529 $(BINDIR)\slc.exe gss-commands.in 530 cd $(SRCDIR) 531 532!ifdef ELISP 533# This macro invocation is used to update the libgssapi_OBJs 534# definition below (generate-obj-macro is defined in maint.el): 535 536(generate-obj-macro "libgssapi_OBJs" 537 (concat "\t$(OBJ)\\gkrb5_err.obj \\\n" 538 "\t$(spnego_files:.x=.obj) \\\n" 539 "\t$(gssapi_files:.x=.obj)") 540 "krb5src" "mechsrc" "spnegosrc" "ntlmsrc") 541!endif 542 543test-exports: 544 $(PERL) ..\..\cf\w32-check-exported-symbols.pl --vs version-script.map --def libgssapi-exports.def 545 546test:: test-exports 547 548 549TEST_BINARIES=\ 550 $(OBJ)\test_oid.exe \ 551 $(OBJ)\test_names.exe \ 552 $(OBJ)\test_cfx.exe \ 553 $(OBJ)\test_acquire_cred.exe \ 554 $(OBJ)\test_cred.exe \ 555 $(OBJ)\test_kcred.exe \ 556 $(OBJ)\test_context.exe \ 557 $(OBJ)\test_ntlm.exe 558 559$(OBJ)\test_oid.exe: $(OBJ)\test_oid.obj $(LIBGSSAPI) $(LIBROKEN) 560 $(EXECONLINK) 561 $(EXEPREP_NODIST) 562 563$(OBJ)\test_names.exe: $(OBJ)\test_names.obj $(LIBGSSAPI) $(LIBROKEN) $(LIBVERS) 564 $(EXECONLINK) 565 $(EXEPREP_NODIST) 566 567$(OBJ)\test_cfx.exe: $(OBJ)\krb5\test_cfx.obj $(LIBHEIMDAL) $(LIBGSSAPI) $(LIBROKEN) 568 $(EXECONLINK) 569 $(EXEPREP_NODIST) 570 571$(OBJ)\test_acquire_cred.exe: $(OBJ)\test_acquire_cred.obj $(OBJ)\test_common.obj \ 572 $(LIBGSSAPI) $(LIBROKEN) $(LIBVERS) 573 $(EXECONLINK) 574 $(EXEPREP_NODIST) 575 576$(OBJ)\test_cred.exe: $(OBJ)\test_cred.obj $(LIBGSSAPI) $(LIBROKEN) $(LIBVERS) 577 $(EXECONLINK) 578 $(EXEPREP_NODIST) 579 580$(OBJ)\test_kcred.exe: $(OBJ)\test_kcred.obj $(LIBGSSAPI) $(LIBHEIMDAL) \ 581 $(LIBROKEN) $(LIBVERS) 582 $(EXECONLINK) 583 $(EXEPREP_NODIST) 584 585$(OBJ)\test_context.exe: $(OBJ)\test_context.obj $(OBJ)\test_common.obj \ 586 $(LIBGSSAPI) $(LIBHEIMDAL) $(LIBROKEN) $(LIBVERS) 587 $(EXECONLINK) 588 $(EXEPREP_NODIST) 589 590$(OBJ)\test_ntlm.exe: $(OBJ)\test_ntlm.obj $(OBJ)\test_common.obj \ 591 $(LIBGSSAPI) $(LIBHEIMNTLM) $(LIBROKEN) $(LIBVERS) 592 $(EXECONLINK) 593 $(EXEPREP_NODIST) 594 595{}.c{$(OBJ)}.obj:: 596 $(C2OBJ_P) -I$(OBJ)\krb5 -I$(OBJ) -I$(SRCDIR) -I$(SRCDIR)\gssapi 597 598test-binaries: $(LIBGSSAPI) $(TEST_BINARIES) 599 600run-test: 601 cd $(OBJ) 602 test_oid 603 test_names 604 test_cfx 605 test_kcred 606 cd $(SRCDIR) 607 608test:: test-binaries run-test 609