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\krb5 33 34!include ../../windows/NTMakefile.w32 35 36libkrb5_OBJS = \ 37 $(OBJ)\acache.obj \ 38 $(OBJ)\acl.obj \ 39 $(OBJ)\add_et_list.obj \ 40 $(OBJ)\addr_families.obj \ 41 $(OBJ)\aname_to_localname.obj \ 42 $(OBJ)\appdefault.obj \ 43 $(OBJ)\asn1_glue.obj \ 44 $(OBJ)\auth_context.obj \ 45 $(OBJ)\build_ap_req.obj \ 46 $(OBJ)\build_auth.obj \ 47 $(OBJ)\cache.obj \ 48 $(OBJ)\changepw.obj \ 49 $(OBJ)\codec.obj \ 50 $(OBJ)\config_file.obj \ 51 $(OBJ)\config_reg.obj \ 52 $(OBJ)\constants.obj \ 53 $(OBJ)\context.obj \ 54 $(OBJ)\copy_host_realm.obj \ 55 $(OBJ)\crc.obj \ 56 $(OBJ)\creds.obj \ 57 $(OBJ)\crypto.obj \ 58 $(OBJ)\crypto-aes.obj \ 59 $(OBJ)\crypto-algs.obj \ 60 $(OBJ)\crypto-arcfour.obj \ 61 $(OBJ)\crypto-des-common.obj \ 62 $(OBJ)\crypto-des.obj \ 63 $(OBJ)\crypto-des3.obj \ 64 $(OBJ)\crypto-evp.obj \ 65 $(OBJ)\crypto-null.obj \ 66 $(OBJ)\crypto-pk.obj \ 67 $(OBJ)\crypto-rand.obj \ 68 $(OBJ)\data.obj \ 69 $(OBJ)\deprecated.obj \ 70 $(OBJ)\digest.obj \ 71 $(OBJ)\dll.obj \ 72 $(OBJ)\eai_to_heim_errno.obj \ 73 $(OBJ)\error_string.obj \ 74 $(OBJ)\expand_hostname.obj \ 75 $(OBJ)\expand_path.obj \ 76 $(OBJ)\fcache.obj \ 77 $(OBJ)\free.obj \ 78 $(OBJ)\free_host_realm.obj \ 79 $(OBJ)\generate_seq_number.obj \ 80 $(OBJ)\generate_subkey.obj \ 81 $(OBJ)\get_addrs.obj \ 82 $(OBJ)\get_cred.obj \ 83 $(OBJ)\get_default_principal.obj \ 84 $(OBJ)\get_default_realm.obj \ 85 $(OBJ)\get_for_creds.obj \ 86 $(OBJ)\get_host_realm.obj \ 87 $(OBJ)\get_in_tkt.obj \ 88 $(OBJ)\get_port.obj \ 89 $(OBJ)\init_creds.obj \ 90 $(OBJ)\init_creds_pw.obj \ 91 $(OBJ)\kcm.obj \ 92 $(OBJ)\keyblock.obj \ 93 $(OBJ)\keytab.obj \ 94 $(OBJ)\keytab_any.obj \ 95 $(OBJ)\keytab_file.obj \ 96 $(OBJ)\keytab_keyfile.obj \ 97 $(OBJ)\keytab_memory.obj \ 98 $(OBJ)\krbhst.obj \ 99 $(OBJ)\kuserok.obj \ 100 $(OBJ)\log.obj \ 101 $(OBJ)\mcache.obj \ 102 $(OBJ)\misc.obj \ 103 $(OBJ)\mit_glue.obj \ 104 $(OBJ)\mk_error.obj \ 105 $(OBJ)\mk_priv.obj \ 106 $(OBJ)\mk_rep.obj \ 107 $(OBJ)\mk_req.obj \ 108 $(OBJ)\mk_req_ext.obj \ 109 $(OBJ)\mk_safe.obj \ 110 $(OBJ)\net_read.obj \ 111 $(OBJ)\net_write.obj \ 112 $(OBJ)\n-fold.obj \ 113 $(OBJ)\pac.obj \ 114 $(OBJ)\padata.obj \ 115 $(OBJ)\pkinit.obj \ 116 $(OBJ)\principal.obj \ 117 $(OBJ)\prog_setup.obj \ 118 $(OBJ)\prompter_posix.obj \ 119 $(OBJ)\rd_cred.obj \ 120 $(OBJ)\rd_error.obj \ 121 $(OBJ)\rd_priv.obj \ 122 $(OBJ)\rd_rep.obj \ 123 $(OBJ)\rd_req.obj \ 124 $(OBJ)\rd_safe.obj \ 125 $(OBJ)\read_message.obj \ 126 $(OBJ)\recvauth.obj \ 127 $(OBJ)\replay.obj \ 128 $(OBJ)\salt-aes.obj \ 129 $(OBJ)\salt-arcfour.obj \ 130 $(OBJ)\salt-des.obj \ 131 $(OBJ)\salt-des3.obj \ 132 $(OBJ)\salt.obj \ 133 $(OBJ)\scache.obj \ 134 $(OBJ)\send_to_kdc.obj \ 135 $(OBJ)\sendauth.obj \ 136 $(OBJ)\set_default_realm.obj \ 137 $(OBJ)\sock_principal.obj \ 138 $(OBJ)\store.obj \ 139 $(OBJ)\store-int.obj \ 140 $(OBJ)\store_emem.obj \ 141 $(OBJ)\store_fd.obj \ 142 $(OBJ)\store_mem.obj \ 143 $(OBJ)\pcache.obj \ 144 $(OBJ)\plugin.obj \ 145 $(OBJ)\ticket.obj \ 146 $(OBJ)\time.obj \ 147 $(OBJ)\transited.obj \ 148 $(OBJ)\verify_init.obj \ 149 $(OBJ)\verify_user.obj \ 150 $(OBJ)\version.obj \ 151 $(OBJ)\warn.obj \ 152 $(OBJ)\write_message.obj 153 154libkrb5_gen_OBJS= \ 155 $(OBJ)\krb5_err.obj \ 156 $(OBJ)\krb_err.obj \ 157 $(OBJ)\heim_err.obj \ 158 $(OBJ)\k524_err.obj 159 160INCFILES= \ 161 $(INCDIR)\heim_err.h \ 162 $(INCDIR)\k524_err.h \ 163 $(INCDIR)\kcm.h \ 164 $(INCDIR)\krb_err.h \ 165 $(INCDIR)\krb5.h \ 166 $(INCDIR)\krb5_ccapi.h \ 167 $(INCDIR)\krb5_err.h \ 168 $(INCDIR)\krb5_locl.h \ 169 $(INCDIR)\krb5-protos.h \ 170 $(INCDIR)\krb5-private.h \ 171 $(INCDIR)\krb5-v4compat.h \ 172 $(INCDIR)\crypto.h 173 174all:: $(INCFILES) 175 176clean:: 177 -$(RM) $(INCFILES) 178 179dist_libkrb5_la_SOURCES = \ 180 acache.c \ 181 acl.c \ 182 add_et_list.c \ 183 addr_families.c \ 184 aname_to_localname.c \ 185 appdefault.c \ 186 asn1_glue.c \ 187 auth_context.c \ 188 build_ap_req.c \ 189 build_auth.c \ 190 cache.c \ 191 changepw.c \ 192 codec.c \ 193 config_file.c \ 194 config_reg.c \ 195 constants.c \ 196 context.c \ 197 copy_host_realm.c \ 198 crc.c \ 199 creds.c \ 200 crypto.c \ 201 crypto.h \ 202 crypto-aes.c \ 203 crypto-algs.c \ 204 crypto-arcfour.c \ 205 crypto-des.c \ 206 crypto-des-common.c \ 207 crypto-des3.c \ 208 crypto-evp.c \ 209 crypto-pk.c \ 210 crypto-rand.c \ 211 doxygen.c \ 212 data.c \ 213 deprecated.c \ 214 digest.c \ 215 eai_to_heim_errno.c \ 216 error_string.c \ 217 expand_hostname.c \ 218 expand_path.c \ 219 fcache.c \ 220 free.c \ 221 free_host_realm.c \ 222 generate_seq_number.c \ 223 generate_subkey.c \ 224 get_addrs.c \ 225 get_cred.c \ 226 get_default_principal.c \ 227 get_default_realm.c \ 228 get_for_creds.c \ 229 get_host_realm.c \ 230 get_in_tkt.c \ 231 get_port.c \ 232 init_creds.c \ 233 init_creds_pw.c \ 234 kcm.c \ 235 kcm.h \ 236 keyblock.c \ 237 keytab.c \ 238 keytab_any.c \ 239 keytab_file.c \ 240 keytab_keyfile.c \ 241 keytab_memory.c \ 242 krb5_locl.h \ 243 krb5-v4compat.h \ 244 krbhst.c \ 245 kuserok.c \ 246 log.c \ 247 mcache.c \ 248 misc.c \ 249 mk_error.c \ 250 mk_priv.c \ 251 mk_rep.c \ 252 mk_req.c \ 253 mk_req_ext.c \ 254 mk_safe.c \ 255 mit_glue.c \ 256 net_read.c \ 257 net_write.c \ 258 n-fold.c \ 259 pac.c \ 260 padata.c \ 261 pkinit.c \ 262 principal.c \ 263 prog_setup.c \ 264 prompter_posix.c \ 265 rd_cred.c \ 266 rd_error.c \ 267 rd_priv.c \ 268 rd_rep.c \ 269 rd_req.c \ 270 rd_safe.c \ 271 read_message.c \ 272 recvauth.c \ 273 replay.c \ 274 salt.c \ 275 salt-aes.c \ 276 salt-arcfour.c \ 277 salt-des.c \ 278 salt-des3.c \ 279 scache.c \ 280 send_to_kdc.c \ 281 sendauth.c \ 282 set_default_realm.c \ 283 sock_principal.c \ 284 store.c \ 285 store-int.c \ 286 store-int.h \ 287 store_emem.c \ 288 store_fd.c \ 289 store_mem.c \ 290 pcache.c \ 291 plugin.c \ 292 ticket.c \ 293 time.c \ 294 transited.c \ 295 verify_init.c \ 296 verify_user.c \ 297 version.c \ 298 warn.c \ 299 write_message.c 300 301$(OBJ)\krb5-protos.h: $(dist_libkrb5_la_SOURCES) 302 $(PERL) ..\..\cf\make-proto.pl -E KRB5_LIB -q -P remove -o $(OBJ)\krb5-protos.h $(dist_libkrb5_la_SOURCES) || $(RM) -f $(OBJ)\krb5-protos.h 303 304$(OBJ)\krb5-private.h: $(dist_libkrb5_la_SOURCES) 305 $(PERL) ..\..\cf\make-proto.pl -q -P remove -p $(OBJ)\krb5-private.h $(dist_libkrb5_la_SOURCES) || $(RM) -f $(OBJ)\krb5-private.h 306 307$(OBJ)\krb5_err.c $(OBJ)\krb5_err.h: krb5_err.et 308 cd $(OBJ) 309 $(BINDIR)\compile_et.exe $(SRCDIR)\krb5_err.et 310 cd $(SRCDIR) 311 312$(OBJ)\krb_err.c $(OBJ)\krb_err.h: krb_err.et 313 cd $(OBJ) 314 $(BINDIR)\compile_et.exe $(SRCDIR)\krb_err.et 315 cd $(SRCDIR) 316 317$(OBJ)\heim_err.c $(OBJ)\heim_err.h: heim_err.et 318 cd $(OBJ) 319 $(BINDIR)\compile_et.exe $(SRCDIR)\heim_err.et 320 cd $(SRCDIR) 321 322$(OBJ)\k524_err.c $(OBJ)\k524_err.h: k524_err.et 323 cd $(OBJ) 324 $(BINDIR)\compile_et.exe $(SRCDIR)\k524_err.et 325 cd $(SRCDIR) 326 327#---------------------------------------------------------------------- 328# libkrb5 329 330$(LIBKRB5): $(libkrb5_OBJS) $(libkrb5_gen_OBJS) 331 $(LIBCON) 332 333all:: $(LIBKRB5) 334 335clean:: 336 -$(RM) $(LIBKRB5) 337 338$(OBJ)\libkrb5-exports.def: libkrb5-exports.def.in $(INCDIR)\config.h 339 $(CPREPROCESSOUT) libkrb5-exports.def.in > $@ || $(RM) $@ 340 341all:: $(OBJ)\libkrb5-exports.def 342 343clean:: 344 -$(RM) $(OBJ)\libkrb5-exports.def 345 346#---------------------------------------------------------------------- 347# librfc3961 348 349librfc3961_OBJS=\ 350 $(OBJ)\crc.obj \ 351 $(OBJ)\crypto.obj \ 352 $(OBJ)\crypto-aes.obj \ 353 $(OBJ)\crypto-algs.obj \ 354 $(OBJ)\crypto-arcfour.obj \ 355 $(OBJ)\crypto-des.obj \ 356 $(OBJ)\crypto-des-common.obj \ 357 $(OBJ)\crypto-des3.obj \ 358 $(OBJ)\crypto-evp.obj \ 359 $(OBJ)\crypto-null.obj \ 360 $(OBJ)\crypto-pk.obj \ 361 $(OBJ)\crypto-rand.obj \ 362 $(OBJ)\crypto-stubs.obj \ 363 $(OBJ)\data.obj \ 364 $(OBJ)\error_string.obj \ 365 $(OBJ)\keyblock.obj \ 366 $(OBJ)\n-fold.obj \ 367 $(OBJ)\salt.obj \ 368 $(OBJ)\salt-aes.obj \ 369 $(OBJ)\salt-arcfour.obj \ 370 $(OBJ)\salt-des.obj \ 371 $(OBJ)\salt-des3.obj \ 372 $(OBJ)\store-int.obj \ 373 $(OBJ)\warn.obj 374 375$(LIBRFC3961): $(librfc3961_OBJS) 376 $(LIBCON) 377 378all:: $(LIBRFC3961) 379 380clean:: 381 -$(RM) $(LIBRFC3961) 382 383#---------------------------------------------------------------------- 384# Tools 385 386all-tools:: $(BINDIR)\verify_krb5_conf.exe 387 388clean:: 389 -$(RM) $(BINDIR)\verify_krb5_conf.* 390 391$(BINDIR)\verify_krb5_conf.exe: $(OBJ)\verify_krb5_conf.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBVERS) $(OBJ)\verify_krb5_conf-version.res 392 $(EXECONLINK) 393 $(EXEPREP) 394 395{}.c{$(OBJ)}.obj:: 396 $(C2OBJ_P) -DBUILD_KRB5_LIB -DASN1_LIB 397 398{$(OBJ)}.c{$(OBJ)}.obj:: 399 $(C2OBJ_P) -DBUILD_KRB5_LIB -DASN1_LIB 400 401#---------------------------------------------------------------------- 402# Tests 403 404test:: test-binaries test-files test-run 405 406test_binaries = \ 407 $(OBJ)\aes-test.exe \ 408 $(OBJ)\derived-key-test.exe \ 409 $(OBJ)\krbhst-test.exe \ 410 $(OBJ)\n-fold-test.exe \ 411 $(OBJ)\parse-name-test.exe \ 412 $(OBJ)\store-test.exe \ 413 $(OBJ)\string-to-key-test.exe \ 414 $(OBJ)\test_acl.exe \ 415 $(OBJ)\test_addr.exe \ 416 $(OBJ)\test_alname.exe \ 417 $(OBJ)\test_cc.exe \ 418 $(OBJ)\test_config.exe \ 419 $(OBJ)\test_crypto.exe \ 420 $(OBJ)\test_crypto_wrapping.exe \ 421 $(OBJ)\test_forward.exe \ 422 $(OBJ)\test_get_addrs.exe \ 423 $(OBJ)\test_hostname.exe \ 424 $(OBJ)\test_keytab.exe \ 425 $(OBJ)\test_kuserok.exe \ 426 $(OBJ)\test_mem.exe \ 427 $(OBJ)\test_pac.exe \ 428 $(OBJ)\test_pkinit_dh2key.exe \ 429 $(OBJ)\test_pknistkdf.exe \ 430 $(OBJ)\test_plugin.exe \ 431 $(OBJ)\test_prf.exe \ 432 $(OBJ)\test_princ.exe \ 433 $(OBJ)\test_renew.exe \ 434 $(OBJ)\test_rfc3961.exe \ 435 $(OBJ)\test_store.exe \ 436 $(OBJ)\test_time.exe \ 437 438test-binaries: $(test_binaries) 439 440test-files: $(OBJ)\test_config_strings.out 441 442$(OBJ)\test_config_strings.out: test_config_strings.cfg 443 $(CP) $** $@ 444 445test-run: 446 cd $(OBJ) 447 aes-test.exe 448 derived-key-test.exe 449 n-fold-test.exe 450 parse-name-test.exe 451 store-test.exe 452 string-to-key-test.exe 453 test_acl.exe 454 test_addr.exe 455 test_cc.exe 456 test_config.exe 457 test_prf.exe 458 test_store.exe 459 test_crypto.exe 460 test_crypto_wrapping.exe 461 test_keytab.exe 462 test_mem.exe 463 test_pac.exe 464 test_plugin.exe 465 test_princ.exe 466 test_pkinit_dh2key.exe 467 test_pknistkdf.exe 468 test_time.exe 469 cd $(SRCDIR) 470 471$(test_binaries): $$(@R).obj $(LIBHEIMDAL) $(LIBVERS) $(LIBROKEN) 472 $(EXECONLINK) 473 $(EXEPREP_NODIST) 474 475$(OBJ)\test_rfc3961.exe: $(OBJ)\test_rfc3961.obj $(LIBRFC3961) $(LIBHEIMDAL) $(LIBVERS) $(LIBROKEN) 476 $(EXECONLINK) 477 $(EXEPREP_NODIST) 478 479$(test_binaries:.exe=.obj): $$(@B).c 480 $(C2OBJ_C) -Fo$@ -Fd$(@D)\ $** -DBlah 481 482test-exports: 483 $(PERL) ..\..\cf\w32-check-exported-symbols.pl --vs version-script.map --def libkrb5-exports.def.in 484 485test:: test-exports 486