s4:torture: Adapt KDC canon test to Heimdal upstream changes
[Samba.git] / source4 / heimdal / lib / krb5 / NTMakefile
blobd32025130989396c564401df03abb67efa73c2f7
1 ########################################################################
3 # Copyright (c) 2009 - 2017, 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
32 RELDIR=lib\krb5
34 !include ../../windows/NTMakefile.w32
36 libkrb5_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)\authdata.obj                 \
46         $(OBJ)\build_ap_req.obj             \
47         $(OBJ)\build_auth.obj               \
48         $(OBJ)\cache.obj                    \
49         $(OBJ)\changepw.obj                 \
50         $(OBJ)\codec.obj                    \
51         $(OBJ)\config_file.obj              \
52         $(OBJ)\constants.obj                \
53         $(OBJ)\context.obj                  \
54         $(OBJ)\convert_creds.obj            \
55         $(OBJ)\copy_host_realm.obj          \
56         $(OBJ)\crc.obj                      \
57         $(OBJ)\creds.obj                    \
58         $(OBJ)\crypto.obj                   \
59         $(OBJ)\crypto-aes-sha1.obj          \
60         $(OBJ)\crypto-aes-sha2.obj          \
61         $(OBJ)\crypto-algs.obj              \
62         $(OBJ)\crypto-arcfour.obj           \
63         $(OBJ)\crypto-des-common.obj        \
64         $(OBJ)\crypto-des.obj               \
65         $(OBJ)\crypto-des3.obj              \
66         $(OBJ)\crypto-evp.obj               \
67         $(OBJ)\crypto-null.obj              \
68         $(OBJ)\crypto-pk.obj                \
69         $(OBJ)\crypto-rand.obj              \
70         $(OBJ)\data.obj                     \
71         $(OBJ)\dcache.obj                   \
72         $(OBJ)\db_plugin.obj                \
73         $(OBJ)\deprecated.obj               \
74         $(OBJ)\digest.obj                   \
75         $(OBJ)\dll.obj                      \
76         $(OBJ)\eai_to_heim_errno.obj        \
77         $(OBJ)\enomem.obj                   \
78         $(OBJ)\error_string.obj             \
79         $(OBJ)\expand_hostname.obj          \
80         $(OBJ)\expand_path.obj              \
81         $(OBJ)\fast.obj                     \
82         $(OBJ)\fcache.obj                   \
83         $(OBJ)\free.obj                     \
84         $(OBJ)\free_host_realm.obj          \
85         $(OBJ)\generate_seq_number.obj      \
86         $(OBJ)\generate_subkey.obj          \
87         $(OBJ)\get_addrs.obj                \
88         $(OBJ)\get_cred.obj                 \
89         $(OBJ)\get_default_principal.obj    \
90         $(OBJ)\get_default_realm.obj        \
91         $(OBJ)\get_for_creds.obj            \
92         $(OBJ)\get_host_realm.obj           \
93         $(OBJ)\get_in_tkt.obj               \
94         $(OBJ)\get_port.obj                 \
95         $(OBJ)\init_creds.obj               \
96         $(OBJ)\init_creds_pw.obj            \
97         $(OBJ)\kcm.obj                      \
98         $(OBJ)\keyblock.obj                 \
99         $(OBJ)\keytab.obj                   \
100         $(OBJ)\keytab_any.obj               \
101         $(OBJ)\keytab_file.obj              \
102         $(OBJ)\keytab_keyfile.obj           \
103         $(OBJ)\keytab_memory.obj            \
104         $(OBJ)\krbhst.obj                   \
105         $(OBJ)\kuserok.obj                  \
106         $(OBJ)\kx509.obj                    \
107         $(OBJ)\log.obj                      \
108         $(OBJ)\mcache.obj                   \
109         $(OBJ)\misc.obj                     \
110         $(OBJ)\mit_glue.obj                 \
111         $(OBJ)\mk_cred.obj                  \
112         $(OBJ)\mk_error.obj                 \
113         $(OBJ)\mk_priv.obj                  \
114         $(OBJ)\mk_rep.obj                   \
115         $(OBJ)\mk_req.obj                   \
116         $(OBJ)\mk_req_ext.obj               \
117         $(OBJ)\mk_safe.obj                  \
118         $(OBJ)\net_read.obj                 \
119         $(OBJ)\net_write.obj                \
120         $(OBJ)\n-fold.obj                   \
121         $(OBJ)\pac.obj                      \
122         $(OBJ)\padata.obj                   \
123         $(OBJ)\pcache.obj                   \
124         $(OBJ)\pkinit.obj                   \
125         $(OBJ)\pkinit-ec.obj                \
126         $(OBJ)\plugin.obj                   \
127         $(OBJ)\principal.obj                \
128         $(OBJ)\prog_setup.obj               \
129         $(OBJ)\prompter_posix.obj           \
130         $(OBJ)\rd_cred.obj                  \
131         $(OBJ)\rd_error.obj                 \
132         $(OBJ)\rd_priv.obj                  \
133         $(OBJ)\rd_rep.obj                   \
134         $(OBJ)\rd_req.obj                   \
135         $(OBJ)\rd_safe.obj                  \
136         $(OBJ)\read_message.obj             \
137         $(OBJ)\recvauth.obj                 \
138         $(OBJ)\replay.obj                   \
139         $(OBJ)\salt-aes-sha1.obj            \
140         $(OBJ)\salt-aes-sha2.obj            \
141         $(OBJ)\salt-arcfour.obj             \
142         $(OBJ)\salt-des.obj                 \
143         $(OBJ)\salt-des3.obj                \
144         $(OBJ)\salt.obj                     \
145         $(OBJ)\scache.obj                   \
146         $(OBJ)\send_to_kdc.obj              \
147         $(OBJ)\sendauth.obj                 \
148         $(OBJ)\set_default_realm.obj        \
149         $(OBJ)\sock_principal.obj           \
150         $(OBJ)\sp800-108-kdf.obj            \
151         $(OBJ)\store.obj                    \
152         $(OBJ)\store-int.obj                \
153         $(OBJ)\store_emem.obj               \
154         $(OBJ)\store_fd.obj                 \
155         $(OBJ)\store_mem.obj                \
156         $(OBJ)\store_sock.obj               \
157         $(OBJ)\store_stdio.obj              \
158         $(OBJ)\ticket.obj                   \
159         $(OBJ)\time.obj                     \
160         $(OBJ)\transited.obj                \
161         $(OBJ)\verify_init.obj              \
162         $(OBJ)\verify_user.obj              \
163         $(OBJ)\version.obj                  \
164         $(OBJ)\warn.obj                     \
165         $(OBJ)\write_message.obj
167 libkrb5_gen_OBJS=           \
168         $(OBJ)\krb5_err.obj \
169         $(OBJ)\krb_err.obj  \
170         $(OBJ)\k524_err.obj \
171         $(OBJ)\k5e1_err.obj
173 INCFILES=                       \
174         $(INCDIR)\k524_err.h    \
175         $(INCDIR)\k5e1_err.h    \
176         $(INCDIR)\kx509_err.h   \
177         $(INCDIR)\kcm.h         \
178         $(INCDIR)\krb_err.h     \
179         $(INCDIR)\krb5.h        \
180         $(INCDIR)\krb5_ccapi.h  \
181         $(INCDIR)\krb5_err.h    \
182         $(INCDIR)\krb5_locl.h   \
183         $(INCDIR)\krb5-protos.h \
184         $(INCDIR)\krb5-private.h        \
185         $(INCDIR)\krb5-v4compat.h       \
186         $(INCDIR)\crypto.h \
187         $(INCDIR)\an2ln_plugin.h \
188         $(INCDIR)\ccache_plugin.h \
189         $(INCDIR)\db_plugin.h \
190         $(INCDIR)\kuserok_plugin.h \
191         $(INCDIR)\locate_plugin.h \
192         $(INCDIR)\send_to_kdc_plugin.h
194 all:: $(INCFILES)
196 clean::
197         -$(RM) $(INCFILES)
199 dist_libkrb5_la_SOURCES =                       \
200         acache.c                                \
201         acl.c                                   \
202         add_et_list.c                           \
203         addr_families.c                         \
204         aname_to_localname.c                    \
205         appdefault.c                            \
206         asn1_glue.c                             \
207         auth_context.c                          \
208         authdata.c                              \
209         build_ap_req.c                          \
210         build_auth.c                            \
211         cache.c                                 \
212         changepw.c                              \
213         codec.c                                 \
214         config_file.c                           \
215         constants.c                             \
216         context.c                               \
217         copy_host_realm.c                       \
218         crc.c                                   \
219         creds.c                                 \
220         crypto.c                                \
221         crypto.h                                \
222         crypto-aes-sha1.c                       \
223         crypto-aes-sha2.c                       \
224         crypto-algs.c                           \
225         crypto-arcfour.c                        \
226         crypto-des.c                            \
227         crypto-des-common.c                     \
228         crypto-des3.c                           \
229         crypto-evp.c                            \
230         crypto-pk.c                             \
231         crypto-rand.c                           \
232         db_plugin.c                             \
233         doxygen.c                               \
234         data.c                                  \
235         dcache.c                                \
236         deprecated.c                            \
237         digest.c                                \
238         eai_to_heim_errno.c                     \
239         enomem.c                                \
240         error_string.c                          \
241         expand_hostname.c                       \
242         expand_path.c                           \
243         fast.c                                  \
244         fcache.c                                \
245         free.c                                  \
246         free_host_realm.c                       \
247         generate_seq_number.c                   \
248         generate_subkey.c                       \
249         get_addrs.c                             \
250         get_cred.c                              \
251         get_default_principal.c                 \
252         get_default_realm.c                     \
253         get_for_creds.c                         \
254         get_host_realm.c                        \
255         get_in_tkt.c                            \
256         get_port.c                              \
257         init_creds.c                            \
258         init_creds_pw.c                         \
259         kcm.c                                   \
260         kcm.h                                   \
261         keyblock.c                              \
262         keytab.c                                \
263         keytab_any.c                            \
264         keytab_file.c                           \
265         keytab_keyfile.c                        \
266         keytab_memory.c                         \
267         krb5_locl.h                             \
268         krb5-v4compat.h                         \
269         krbhst.c                                \
270         kuserok.c                               \
271         kx509.c                                 \
272         log.c                                   \
273         mcache.c                                \
274         misc.c                                  \
275         mk_cred.c                               \
276         mk_error.c                              \
277         mk_priv.c                               \
278         mk_rep.c                                \
279         mk_req.c                                \
280         mk_req_ext.c                            \
281         mk_safe.c                               \
282         mit_glue.c                              \
283         net_read.c                              \
284         net_write.c                             \
285         n-fold.c                                \
286         pac.c                                   \
287         padata.c                                \
288         pkinit.c                                \
289         pkinit-ec.c                             \
290         plugin.c                                \
291         principal.c                             \
292         prog_setup.c                            \
293         prompter_posix.c                        \
294         rd_cred.c                               \
295         rd_error.c                              \
296         rd_priv.c                               \
297         rd_rep.c                                \
298         rd_req.c                                \
299         rd_safe.c                               \
300         read_message.c                          \
301         recvauth.c                              \
302         replay.c                                \
303         salt.c                                  \
304         salt-aes-sha1.c                         \
305         salt-aes-sha2.c                         \
306         salt-arcfour.c                          \
307         salt-des.c                              \
308         salt-des3.c                             \
309         scache.c                                \
310         send_to_kdc.c                           \
311         sendauth.c                              \
312         set_default_realm.c                     \
313         sock_principal.c                        \
314         sp800-108-kdf.c                         \
315         store.c                                 \
316         store-int.c                             \
317         store-int.h                             \
318         store_emem.c                            \
319         store_fd.c                              \
320         store_mem.c                             \
321         store_sock.c                            \
322         store_stdio.c                           \
323         pcache.c                                \
324         plugin.c                                \
325         ticket.c                                \
326         time.c                                  \
327         transited.c                             \
328         verify_init.c                           \
329         verify_user.c                           \
330         version.c                               \
331         warn.c                                  \
332         write_message.c
334 $(OBJ)\krb5-protos.h: $(dist_libkrb5_la_SOURCES)
335         $(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
337 $(OBJ)\krb5-private.h: $(dist_libkrb5_la_SOURCES)
338         $(PERL) ..\..\cf\make-proto.pl -q -P remove -p $(OBJ)\krb5-private.h $(dist_libkrb5_la_SOURCES) || $(RM) -f $(OBJ)\krb5-private.h
340 $(OBJ)\krb5_err.c $(OBJ)\krb5_err.h: krb5_err.et
341         cd $(OBJ)
342         $(BINDIR)\compile_et.exe $(SRCDIR)\krb5_err.et
343         cd $(SRCDIR)
345 $(OBJ)\krb_err.c $(OBJ)\krb_err.h: krb_err.et
346         cd $(OBJ)
347         $(BINDIR)\compile_et.exe $(SRCDIR)\krb_err.et
348         cd $(SRCDIR)
350 $(OBJ)\k524_err.c $(OBJ)\k524_err.h: k524_err.et
351         cd $(OBJ)
352         $(BINDIR)\compile_et.exe $(SRCDIR)\k524_err.et
353         cd $(SRCDIR)
355 $(OBJ)\k5e1_err.c $(OBJ)\k5e1_err.h: k5e1_err.et
356         cd $(OBJ)
357         $(BINDIR)\compile_et.exe $(SRCDIR)\k5e1_err.et
358         cd $(SRCDIR)
360 $(OBJ)\kx509_err.c $(OBJ)\kx509_err.h: kx509_err.et
361         cd $(OBJ)
362         $(BINDIR)\compile_et.exe $(SRCDIR)\kx509_err.et
363         cd $(SRCDIR)
365 #----------------------------------------------------------------------
366 # libkrb5
368 $(LIBKRB5): $(libkrb5_OBJS)  $(libkrb5_gen_OBJS)
369         $(LIBCON_C) -OUT:$@ $(LIBHEIMBASE) $(LIB_openssl_crypto) @<<
370 $(libkrb5_OBJS: =
372 $(libkrb5_gen_OBJS: =
376 all:: $(LIBKRB5)
378 clean::
379         -$(RM) $(LIBKRB5)
381 $(OBJ)\libkrb5-exports.def: libkrb5-exports.def.in $(INCDIR)\config.h
382         $(CPREPROCESSOUT) libkrb5-exports.def.in > $@ || $(RM) $@
384 all:: $(OBJ)\libkrb5-exports.def
386 clean::
387         -$(RM) $(OBJ)\libkrb5-exports.def
389 #----------------------------------------------------------------------
390 # librfc3961
392 librfc3961_OBJS=\
393         $(OBJ)\crc.obj                  \
394         $(OBJ)\crypto.obj               \
395         $(OBJ)\crypto-aes-sha1.obj      \
396         $(OBJ)\crypto-aes-sha2.obj      \
397         $(OBJ)\crypto-algs.obj          \
398         $(OBJ)\crypto-arcfour.obj       \
399         $(OBJ)\crypto-des.obj           \
400         $(OBJ)\crypto-des-common.obj    \
401         $(OBJ)\crypto-des3.obj          \
402         $(OBJ)\crypto-evp.obj           \
403         $(OBJ)\crypto-null.obj          \
404         $(OBJ)\crypto-pk.obj            \
405         $(OBJ)\crypto-rand.obj          \
406         $(OBJ)\crypto-stubs.obj         \
407         $(OBJ)\data.obj                 \
408         $(OBJ)\error_string.obj         \
409         $(OBJ)\keyblock.obj             \
410         $(OBJ)\n-fold.obj               \
411         $(OBJ)\salt.obj                 \
412         $(OBJ)\salt-aes-sha1.obj        \
413         $(OBJ)\salt-aes-sha2.obj        \
414         $(OBJ)\salt-arcfour.obj         \
415         $(OBJ)\salt-des.obj             \
416         $(OBJ)\salt-des3.obj            \
417         $(OBJ)\sp800-108-kdf.obj        \
418         $(OBJ)\store-int.obj            \
419         $(OBJ)\warn.obj
421 $(LIBRFC3961): $(librfc3961_OBJS)
422         $(LIBCON)
424 all:: $(LIBRFC3961)
426 clean::
427         -$(RM) $(LIBRFC3961)
429 #----------------------------------------------------------------------
430 # Tools
432 all-tools:: $(BINDIR)\verify_krb5_conf.exe
434 clean::
435         -$(RM) $(BINDIR)\verify_krb5_conf.*
437 $(BINDIR)\verify_krb5_conf.exe: $(OBJ)\verify_krb5_conf.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBVERS) $(OBJ)\verify_krb5_conf-version.res
438         $(EXECONLINK)
439         $(EXEPREP)
441 {}.c{$(OBJ)}.obj::
442         $(C2OBJ_P) -DBUILD_KRB5_LIB -DASN1_LIB
444 {$(OBJ)}.c{$(OBJ)}.obj::
445         $(C2OBJ_P) -DBUILD_KRB5_LIB -DASN1_LIB
447 #----------------------------------------------------------------------
448 # Tests
450 test:: test-binaries test-files test-run
452 test_binaries =                         \
453         $(OBJ)\aes-test.exe             \
454         $(OBJ)\derived-key-test.exe     \
455         $(OBJ)\krbhst-test.exe          \
456         $(OBJ)\n-fold-test.exe          \
457         $(OBJ)\parse-name-test.exe      \
458         $(OBJ)\pseudo-random-test.exe   \
459         $(OBJ)\store-test.exe           \
460         $(OBJ)\string-to-key-test.exe   \
461         $(OBJ)\test_acl.exe             \
462         $(OBJ)\test_addr.exe            \
463         $(OBJ)\test_alname.exe          \
464         $(OBJ)\test_cc.exe              \
465         $(OBJ)\test_config.exe          \
466         $(OBJ)\test_crypto.exe          \
467         $(OBJ)\test_crypto_wrapping.exe \
468         $(OBJ)\test_forward.exe         \
469         $(OBJ)\test_get_addrs.exe       \
470         $(OBJ)\test_hostname.exe        \
471         $(OBJ)\test_keytab.exe          \
472         $(OBJ)\test_kuserok.exe         \
473         $(OBJ)\test_mem.exe             \
474         $(OBJ)\test_pac.exe             \
475         $(OBJ)\test_pkinit_dh2key.exe   \
476         $(OBJ)\test_pknistkdf.exe       \
477         $(OBJ)\test_plugin.exe          \
478         $(OBJ)\test_prf.exe             \
479         $(OBJ)\test_princ.exe           \
480         $(OBJ)\test_renew.exe           \
481         $(OBJ)\test_store.exe           \
482         $(OBJ)\test_time.exe            \
484 test-binaries: $(test_binaries) $(OBJ)\test_rfc3961.exe
486 test-files: $(OBJ)\test_config_strings.out
488 $(OBJ)\test_config_strings.out: test_config_strings.cfg
489         $(CP) $** $@
491 test-run:
492         cd $(OBJ)
493         -aes-test.exe
494         -derived-key-test.exe
495         -krbhst-test.exe
496         -n-fold-test.exe
497         -parse-name-test.exe
498         -pseudo-random-test.exe
499         -store-test.exe
500         -string-to-key-test.exe
501         -test_acl.exe
502         -test_addr.exe
503 # Skip alname due to lack of .k5login and "root"
504 #       -test_alname.exe
505         -test_cc.exe
506         -test_config.exe
507         -test_crypto.exe
508         -test_crypto_wrapping.exe
509 # Skip forward due to need for existing hostname
510 #       -test_forward.exe
511         -test_get_addrs.exe
512         -test_hostname.exe
513         -test_keytab.exe
514 # Skip kuserok requires principal and localname
515 #       -test_kuserok.exe
516         -test_mem.exe
517         -test_pac.exe
518         -test_pkinit_dh2key.exe
519         -test_pknistkdf.exe
520         -test_plugin.exe
521         -test_prf.exe
522         -test_renew.exe
523         -test_rfc3961.exe
524         -test_store.exe
525         -test_time.exe
526         cd $(SRCDIR)
528 $(test_binaries): $$(@R).obj $(LIBHEIMDAL) $(LIBVERS) $(LIBROKEN) $(LIBHEIMBASE)
529         $(EXECONLINK)
530         $(EXEPREP_NODIST)
532 $(OBJ)\test_rfc3961.exe: $(OBJ)\test_rfc3961.obj $(LIBRFC3961) $(LIBHEIMDAL) $(LIBVERS) $(LIBCOMERR) $(LIBROKEN) $(LIBHEIMBASE)
533         $(EXECONLINK)
534         $(EXEPREP_NODIST)
536 $(test_binaries:.exe=.obj): $$(@B).c
537         $(C2OBJ_C) -Fo$@ -Fd$(@D)\ $** -DBlah
539 test-exports:
540         $(PERL) ..\..\cf\w32-check-exported-symbols.pl --vs version-script.map --def libkrb5-exports.def.in
542 test:: test-exports