1# $NetBSD: Makefile,v 1.7 2023/06/19 23:56:55 mrg Exp $
2
3USE_FORT?= yes        # network protocol library
4
5.include <bsd.own.mk>
6.include <${.CURDIR}/../../Makefile.inc>
7
8.PATH:              ${HEIMDIST}/lib/gssapi                  \
9                    ${HEIMDIST}/lib/gssapi/krb5   \
10                    ${HEIMDIST}/lib/gssapi/mech   \
11                    ${HEIMDIST}/lib/gssapi/spnego \
12                    ${HEIMDIST}/lib/gssapi/ntlm
13
14LIB=                gssapi
15
16LIBDPLIBS+=         krb5                ${HEIMBASE}/lib/libkrb5                 \
17                    asn1                ${HEIMBASE}/lib/libasn1                 \
18                    com_err             ${HEIMBASE}/lib/libcom_err    \
19                    roken               ${HEIMBASE}/lib/libroken      \
20                    heimbase  ${HEIMBASE}/lib/libheimbase   \
21                    heimntlm  ${HEIMBASE}/lib/libheimntlm   \
22                    crypto              ${SSLBASE}/lib/libcrypto
23
24HEIMSRCS= gkrb5_err.et spnego.asn1 gssapi.asn1
25
26ASN1_OPTS.spnego.asn1 = --sequence=MechTypeList
27
28ASN1_FILES.spnego.asn1 = \
29          asn1_ContextFlags.x           \
30          asn1_MechType.x                         \
31          asn1_MechTypeList.x           \
32          asn1_NegotiationToken.x                 \
33          asn1_NegotiationTokenWin.x    \
34          asn1_NegHints.x                         \
35          asn1_NegTokenInit.x           \
36          asn1_NegTokenInitWin.x                  \
37          asn1_NegTokenResp.x
38
39krb5src = \
40          krb5/8003.c \
41          krb5/accept_sec_context.c \
42          krb5/acquire_cred.c \
43          krb5/add_cred.c \
44          krb5/address_to_krb5addr.c \
45          krb5/aeap.c \
46          krb5/arcfour.c \
47          krb5/canonicalize_name.c \
48          krb5/creds.c \
49          krb5/ccache_name.c \
50          krb5/cfx.c \
51          krb5/compare_name.c \
52          krb5/compat.c \
53          krb5/context_time.c \
54          krb5/copy_ccache.c \
55          krb5/decapsulate.c \
56          krb5/delete_sec_context.c \
57          krb5/display_name.c \
58          krb5/display_status.c \
59          krb5/duplicate_name.c \
60          krb5/encapsulate.c \
61          krb5/export_name.c \
62          krb5/export_sec_context.c \
63          krb5/external.c \
64          krb5/get_mic.c \
65          krb5/import_name.c \
66          krb5/import_sec_context.c \
67          krb5/indicate_mechs.c \
68          krb5/init.c \
69          krb5/init_sec_context.c \
70          krb5/inquire_context.c \
71          krb5/inquire_cred.c \
72          krb5/inquire_cred_by_mech.c \
73          krb5/inquire_cred_by_oid.c \
74          krb5/inquire_mechs_for_name.c \
75          krb5/inquire_names_for_mech.c \
76          krb5/inquire_sec_context_by_oid.c \
77          krb5/pname_to_uid.c \
78          krb5/process_context_token.c \
79          krb5/prf.c \
80          krb5/release_buffer.c \
81          krb5/release_cred.c \
82          krb5/release_name.c \
83          krb5/sequence.c \
84          krb5/store_cred.c \
85          krb5/set_cred_option.c \
86          krb5/set_sec_context_option.c \
87          krb5/ticket_flags.c \
88          krb5/unwrap.c \
89          krb5/authorize_localname.c \
90          krb5/verify_mic.c \
91          krb5/wrap.c
92
93mechsrc = \
94          mech/context.c \
95          mech/doxygen.c \
96          mech/gss_accept_sec_context.c \
97          mech/gss_acquire_cred.c \
98          mech/gss_acquire_cred_ext.c \
99          mech/gss_acquire_cred_with_password.c \
100          mech/gss_add_cred.c \
101          mech/gss_add_cred_with_password.c \
102          mech/gss_add_oid_set_member.c \
103          mech/gss_aeap.c \
104          mech/gss_buffer_set.c \
105          mech/gss_canonicalize_name.c \
106          mech/gss_compare_name.c \
107          mech/gss_context_time.c \
108          mech/gss_create_empty_oid_set.c \
109          mech/gss_cred.c \
110          mech/gss_decapsulate_token.c \
111          mech/gss_delete_name_attribute.c \
112          mech/gss_delete_sec_context.c \
113          mech/gss_display_name.c \
114          mech/gss_display_name_ext.c \
115          mech/gss_display_status.c \
116          mech/gss_duplicate_name.c \
117          mech/gss_duplicate_oid.c \
118          mech/gss_encapsulate_token.c \
119          mech/gss_export_name.c \
120          mech/gss_export_name_composite.c \
121          mech/gss_export_sec_context.c \
122          mech/gss_get_mic.c \
123          mech/gss_get_name_attribute.c \
124          mech/gss_import_name.c \
125          mech/gss_import_sec_context.c \
126          mech/gss_indicate_mechs.c \
127          mech/gss_init_sec_context.c \
128          mech/gss_inquire_context.c \
129          mech/gss_inquire_cred.c \
130          mech/gss_inquire_cred_by_mech.c \
131          mech/gss_inquire_cred_by_oid.c \
132          mech/gss_inquire_mechs_for_name.c \
133          mech/gss_inquire_name.c \
134          mech/gss_inquire_names_for_mech.c \
135          mech/gss_krb5.c \
136          mech/gss_mech_switch.c \
137          mech/gss_mo.c \
138          mech/gss_names.c \
139          mech/gss_oid.c \
140          mech/gss_oid_equal.c \
141          mech/gss_oid_to_str.c \
142          mech/gss_pname_to_uid.c \
143          mech/gss_process_context_token.c \
144          mech/gss_pseudo_random.c \
145          mech/gss_release_buffer.c \
146          mech/gss_release_cred.c \
147          mech/gss_release_name.c \
148          mech/gss_release_oid.c \
149          mech/gss_release_oid_set.c \
150          mech/gss_seal.c \
151          mech/gss_set_cred_option.c \
152          mech/gss_set_name_attribute.c \
153          mech/gss_set_sec_context_option.c \
154          mech/gss_sign.c \
155          mech/gss_store_cred.c \
156          mech/gss_test_oid_set_member.c \
157          mech/gss_unseal.c \
158          mech/gss_unwrap.c \
159          mech/gss_authorize_localname.c \
160          mech/gss_utils.c \
161          mech/gss_verify.c \
162          mech/gss_verify_mic.c \
163          mech/gss_wrap.c \
164          mech/gss_wrap_size_limit.c \
165          mech/gss_inquire_sec_context_by_oid.c
166
167spnegosrc = \
168          spnego/accept_sec_context.c \
169          spnego/compat.c \
170          spnego/context_stubs.c \
171          spnego/cred_stubs.c \
172          spnego/external.c \
173          spnego/init_sec_context.c
174
175ntlmsrc = \
176          ntlm/accept_sec_context.c \
177          ntlm/acquire_cred.c \
178          ntlm/add_cred.c \
179          ntlm/canonicalize_name.c \
180          ntlm/compare_name.c \
181          ntlm/context_time.c \
182          ntlm/creds.c \
183          ntlm/crypto.c \
184          ntlm/delete_sec_context.c \
185          ntlm/display_name.c \
186          ntlm/display_status.c \
187          ntlm/duplicate_name.c \
188          ntlm/export_name.c \
189          ntlm/export_sec_context.c \
190          ntlm/external.c \
191          ntlm/import_name.c \
192          ntlm/import_sec_context.c \
193          ntlm/indicate_mechs.c \
194          ntlm/init_sec_context.c \
195          ntlm/inquire_context.c \
196          ntlm/inquire_cred_by_mech.c \
197          ntlm/inquire_mechs_for_name.c \
198          ntlm/inquire_names_for_mech.c \
199          ntlm/inquire_sec_context_by_oid.c \
200          ntlm/iter_cred.c \
201          ntlm/process_context_token.c \
202          ntlm/release_cred.c \
203          ntlm/release_name.c \
204          ntlm/kdc.c
205
206NTLMSRC=  ${ntlmsrc:S@/@__@}
207KRB5SRC=  ${krb5src:S@/@__@}
208MECHSRC=  ${mechsrc:S@/@__@}
209SPNEGOSRC=          ${spnegosrc:S@/@__@}
210
211SRCS= ${KRB5SRC} ${MECHSRC} ${SPNEGOSRC} ${NTLMSRC}
212
213.for i in ${KRB5SRC} ${MECHSRC} ${SPNEGOSRC} ${NTLMSRC}
214BUILDSYMLINKS+= ${i:S@__@/@} ${i}
215CLEANFILES+= ${i}
216.endfor
217
218MAN=                                    \
219          gssapi.3            \
220          gss_acquire_cred.3  \
221          mech.5
222
223MLINKS= \
224          gss_acquire_cred.3  gss_accept_sec_context.3      \
225          gss_acquire_cred.3  gss_add_cred.3                          \
226          gss_acquire_cred.3  gss_add_oid_set_member.3      \
227          gss_acquire_cred.3  gss_canonicalize_name.3                 \
228          gss_acquire_cred.3  gss_compare_name.3            \
229          gss_acquire_cred.3  gss_context_time.3            \
230          gss_acquire_cred.3  gss_create_empty_oid_set.3    \
231          gss_acquire_cred.3  gss_delete_sec_context.3      \
232          gss_acquire_cred.3  gss_display_name.3            \
233          gss_acquire_cred.3  gss_display_status.3                    \
234          gss_acquire_cred.3  gss_duplicate_name.3                    \
235          gss_acquire_cred.3  gss_export_name.3             \
236          gss_acquire_cred.3  gss_export_sec_context.3      \
237          gss_acquire_cred.3  gss_get_mic.3                           \
238          gss_acquire_cred.3  gss_import_name.3             \
239          gss_acquire_cred.3  gss_import_sec_context.3      \
240          gss_acquire_cred.3  gss_indicate_mechs.3                    \
241          gss_acquire_cred.3  gss_init_sec_context.3                  \
242          gss_acquire_cred.3  gss_inquire_context.3                   \
243          gss_acquire_cred.3  gss_inquire_cred.3            \
244          gss_acquire_cred.3  gss_inquire_cred_by_mech.3    \
245          gss_acquire_cred.3  gss_inquire_mechs_for_name.3  \
246          gss_acquire_cred.3  gss_inquire_names_for_mech.3  \
247          gss_acquire_cred.3  gss_krb5_ccache_name.3                  \
248          gss_acquire_cred.3  gss_krb5_compat_des3_mic.3    \
249          gss_acquire_cred.3  gss_krb5_copy_ccache.3                  \
250          gss_acquire_cred.3  gss_krb5_get_tkt_flags.3      \
251          gss_acquire_cred.3  gss_krb5_import_ccache.3      \
252          gss_acquire_cred.3  gss_krb5_import_cred.3                  \
253          gss_acquire_cred.3  gss_process_context_token.3   \
254          gss_acquire_cred.3  gss_release_buffer.3                    \
255          gss_acquire_cred.3  gss_release_cred.3            \
256          gss_acquire_cred.3  gss_release_name.3            \
257          gss_acquire_cred.3  gss_release_oid_set.3                   \
258          gss_acquire_cred.3  gss_seal.3                              \
259          gss_acquire_cred.3  gss_sign.3                              \
260          gss_acquire_cred.3  gss_test_oid_set_member.3     \
261          gss_acquire_cred.3  gss_unseal.3                            \
262          gss_acquire_cred.3  gss_unwrap.3                            \
263          gss_acquire_cred.3  gss_verify.3                            \
264          gss_acquire_cred.3  gss_verify_mic.3              \
265          gss_acquire_cred.3  gss_wrap.3                              \
266          gss_acquire_cred.3  gss_wrap_size_limit.3                   \
267          gss_acquire_cred.3  gsskrb5_extract_authz_data_from_sec_context.3 \
268          gss_acquire_cred.3  gsskrb5_register_acceptor_identity.3
269
270INCS=               gssapi.h
271INCS+=              gssapi/gssapi.h gssapi/gssapi_krb5.h gssapi/gssapi_spnego.h
272INCS+=              gssapi/gssapi_oid.h gssapi/gssapi_ntlm.h
273INCSDIR=  /usr/include
274
275CPPFLAGS+=                              \
276          -I${HEIMDIST}/lib/krb5        \
277          -I${HEIMDIST}/lib/asn1        \
278          -I${HEIMDIST}/lib
279
280COPTS.krb5__get_mic.c+= -Wno-error=deprecated-declarations
281COPTS.krb5__wrap.c+= -Wno-error=deprecated-declarations
282COPTS.krb5__unwrap.c+= -Wno-error=deprecated-declarations
283COPTS.krb5__verify_mic.c+= -Wno-error=deprecated-declarations
284COPTS.ntlm__accept_sec_context.c+= -Wno-error=deprecated-declarations
285COPTS.ntlm__crypto.c+= -Wno-error=deprecated-declarations
286COPTS.ntlm__init_sec_context.c+= -Wno-error=deprecated-declarations
287
288.include <${HEIMBASE}/Makefile.rules.inc>
289.include <bsd.lib.mk>
290