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