1# $Id$
2
3include $(top_srcdir)/Makefile.am.common
4
5AUTOMAKE_OPTIONS = subdir-objects
6
7AM_CPPFLAGS += \
8	-I$(srcdir)/../krb5 \
9	-I$(srcdir) \
10	-I$(srcdir)/gssapi \
11	-I$(srcdir)/mech \
12	-I$(srcdir)/ntlm \
13	-I$(srcdir)/krb5 \
14	-I$(srcdir)/spnego \
15	$(INCLUDE_libintl) \
16	$(INCLUDE_hcrypto)
17
18lib_LTLIBRARIES = libgssapi.la
19
20krb5src = \
21	krb5/8003.c \
22	krb5/accept_sec_context.c \
23	krb5/acquire_cred.c \
24	krb5/add_cred.c \
25	krb5/address_to_krb5addr.c \
26	krb5/aeap.c \
27	krb5/arcfour.c \
28	krb5/canonicalize_name.c \
29	krb5/creds.c \
30	krb5/ccache_name.c \
31	krb5/cfx.c \
32	krb5/cfx.h \
33	krb5/compare_name.c \
34	krb5/compat.c \
35	krb5/context_time.c \
36	krb5/copy_ccache.c \
37	krb5/decapsulate.c \
38	krb5/delete_sec_context.c \
39	krb5/display_name.c \
40	krb5/display_status.c \
41	krb5/duplicate_name.c \
42	krb5/encapsulate.c \
43	krb5/export_name.c \
44	krb5/export_sec_context.c \
45	krb5/external.c \
46	krb5/get_mic.c \
47	krb5/gsskrb5_locl.h \
48	krb5/gsskrb5-private.h \
49	krb5/import_name.c \
50	krb5/import_sec_context.c \
51	krb5/indicate_mechs.c \
52	krb5/init.c \
53	krb5/init_sec_context.c \
54	krb5/inquire_context.c \
55	krb5/inquire_cred.c \
56	krb5/inquire_cred_by_mech.c \
57	krb5/inquire_cred_by_oid.c \
58	krb5/inquire_mechs_for_name.c \
59	krb5/inquire_names_for_mech.c \
60	krb5/inquire_sec_context_by_oid.c \
61	krb5/iter_cred.c \
62	krb5/pname_to_uid.c \
63	krb5/process_context_token.c \
64	krb5/prf.c \
65	krb5/release_buffer.c \
66	krb5/release_cred.c \
67	krb5/release_name.c \
68	krb5/sequence.c \
69	krb5/store_cred.c \
70	krb5/set_cred_option.c \
71	krb5/set_sec_context_option.c \
72	krb5/ticket_flags.c \
73	krb5/unwrap.c \
74	krb5/authorize_localname.c \
75	krb5/verify_mic.c \
76	krb5/wrap.c
77
78mechsrc = \
79	mech/context.h \
80	mech/context.c \
81	mech/cred.h \
82	mech/compat.h \
83	mech/doxygen.c \
84	mech/gss_accept_sec_context.c \
85	mech/gss_acquire_cred.c \
86	mech/gss_acquire_cred_ext.c \
87	mech/gss_acquire_cred_with_password.c \
88	mech/gss_add_cred.c \
89	mech/gss_add_cred_with_password.c \
90	mech/gss_add_oid_set_member.c \
91	mech/gss_aeap.c \
92	mech/gss_buffer_set.c \
93	mech/gss_canonicalize_name.c \
94	mech/gss_compare_name.c \
95	mech/gss_context_time.c \
96	mech/gss_create_empty_oid_set.c \
97	mech/gss_cred.c \
98	mech/gss_decapsulate_token.c \
99	mech/gss_delete_name_attribute.c \
100	mech/gss_delete_sec_context.c \
101	mech/gss_display_name.c \
102	mech/gss_display_name_ext.c \
103	mech/gss_display_status.c \
104	mech/gss_duplicate_name.c \
105	mech/gss_duplicate_oid.c \
106	mech/gss_encapsulate_token.c \
107	mech/gss_export_name.c \
108	mech/gss_export_name_composite.c \
109	mech/gss_export_sec_context.c \
110	mech/gss_get_mic.c \
111	mech/gss_get_name_attribute.c \
112	mech/gss_import_name.c \
113	mech/gss_import_sec_context.c \
114	mech/gss_indicate_mechs.c \
115	mech/gss_init_sec_context.c \
116	mech/gss_inquire_context.c \
117	mech/gss_inquire_cred.c \
118	mech/gss_inquire_cred_by_mech.c \
119	mech/gss_inquire_cred_by_oid.c \
120	mech/gss_inquire_mechs_for_name.c \
121	mech/gss_inquire_name.c \
122	mech/gss_inquire_names_for_mech.c \
123	mech/gss_krb5.c \
124	mech/gss_mech_switch.c \
125	mech/gss_mo.c \
126	mech/gss_names.c \
127	mech/gss_oid.c \
128	mech/gss_oid_equal.c \
129	mech/gss_oid_to_str.c \
130	mech/gss_pname_to_uid.c \
131	mech/gss_process_context_token.c \
132	mech/gss_pseudo_random.c \
133	mech/gss_release_buffer.c \
134	mech/gss_release_cred.c \
135	mech/gss_release_name.c \
136	mech/gss_release_oid.c \
137	mech/gss_release_oid_set.c \
138	mech/gss_seal.c \
139	mech/gss_set_cred_option.c \
140	mech/gss_set_name_attribute.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_authorize_localname.c \
148	mech/gss_utils.c \
149	mech/gss_verify.c \
150	mech/gss_verify_mic.c \
151	mech/gss_wrap.c \
152	mech/gss_wrap_size_limit.c \
153	mech/gss_inquire_sec_context_by_oid.c \
154	mech/mech_switch.h \
155	mech/mechqueue.h \
156	mech/mech_locl.h \
157	mech/name.h \
158	mech/utils.h
159
160spnegosrc = \
161	spnego/accept_sec_context.c \
162	spnego/compat.c \
163	spnego/context_stubs.c \
164	spnego/cred_stubs.c \
165	spnego/external.c \
166	spnego/init_sec_context.c \
167	spnego/spnego_locl.h \
168	spnego/spnego-private.h
169
170ntlmsrc = \
171	ntlm/accept_sec_context.c \
172	ntlm/acquire_cred.c \
173	ntlm/add_cred.c \
174	ntlm/canonicalize_name.c \
175	ntlm/compare_name.c \
176	ntlm/context_time.c \
177	ntlm/creds.c \
178	ntlm/crypto.c \
179	ntlm/delete_sec_context.c \
180	ntlm/display_name.c \
181	ntlm/display_status.c \
182	ntlm/duplicate_name.c \
183	ntlm/export_name.c \
184	ntlm/export_sec_context.c \
185	ntlm/external.c \
186	ntlm/ntlm.h \
187	ntlm/ntlm-private.h \
188	ntlm/import_name.c \
189	ntlm/import_sec_context.c \
190	ntlm/indicate_mechs.c \
191	ntlm/init_sec_context.c \
192	ntlm/iter_cred.c \
193	ntlm/inquire_context.c \
194	ntlm/inquire_cred_by_mech.c \
195	ntlm/inquire_mechs_for_name.c \
196	ntlm/inquire_names_for_mech.c \
197	ntlm/inquire_sec_context_by_oid.c \
198	ntlm/iter_cred.c \
199	ntlm/process_context_token.c \
200	ntlm/release_cred.c \
201	ntlm/release_name.c \
202	ntlm/kdc.c
203
204$(srcdir)/ntlm/ntlm-private.h:
205	cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p ntlm/ntlm-private.h $(ntlmsrc) || rm -f ntlm/ntlm-private.h
206
207dist_libgssapi_la_SOURCES  = \
208	$(krb5src) \
209	$(mechsrc) \
210	$(ntlmsrc) \
211	$(spnegosrc)
212
213nodist_libgssapi_la_SOURCES  = \
214	gkrb5_err.c \
215	gkrb5_err.h \
216	spnego_asn1-template.c \
217	gssapi_asn1-template.c \
218	$(BUILT_SOURCES)
219
220libgssapi_la_DEPENDENCIES = version-script.map
221
222libgssapi_la_LDFLAGS = -version-info 3:0:0
223
224if versionscript
225libgssapi_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map
226endif
227
228libgssapi_la_LIBADD = \
229	$(top_builddir)/lib/ntlm/libheimntlm.la \
230	$(top_builddir)/lib/krb5/libkrb5.la \
231	$(top_builddir)/lib/asn1/libasn1.la \
232	$(LIB_com_err) \
233	$(LIB_hcrypto) \
234	$(LIBADD_roken)
235
236man_MANS = gssapi.3 gss_acquire_cred.3 mech/mech.5
237
238include_HEADERS = gssapi.h
239noinst_HEADERS = \
240	gssapi_mech.h \
241	ntlm/ntlm-private.h \
242	spnego/spnego-private.h \
243	krb5/gsskrb5-private.h
244
245nobase_include_HEADERS = \
246	gssapi/gssapi.h \
247	gssapi/gssapi_krb5.h \
248	gssapi/gssapi_ntlm.h \
249	gssapi/gssapi_oid.h \
250	gssapi/gssapi_spnego.h
251
252gssapidir = $(includedir)/gssapi
253nodist_gssapi_HEADERS = gkrb5_err.h
254
255gssapi_files = asn1_GSSAPIContextToken.x
256
257spnego_files =					\
258	asn1_ContextFlags.x			\
259	asn1_MechType.x				\
260	asn1_MechTypeList.x			\
261	asn1_NegotiationToken.x			\
262	asn1_NegotiationTokenWin.x		\
263	asn1_NegHints.x				\
264	asn1_NegTokenInit.x			\
265	asn1_NegTokenInitWin.x			\
266	asn1_NegTokenResp.x
267
268BUILTHEADERS = \
269	$(srcdir)/krb5/gsskrb5-private.h \
270	$(srcdir)/spnego/spnego-private.h \
271	$(srcdir)/ntlm/ntlm-private.h
272
273$(libgssapi_la_OBJECTS): $(BUILTHEADERS)
274$(test_context_OBJECTS): $(BUILTHEADERS)
275
276$(libgssapi_la_OBJECTS): $(srcdir)/version-script.map
277
278BUILT_SOURCES = $(spnego_files:.x=.c) $(gssapi_files:.x=.c)
279
280CLEANFILES = $(BUILT_SOURCES) \
281	gkrb5_err.h gkrb5_err.c \
282	$(spnego_files) spnego_asn1*.h* spnego_asn1_files spnego_asn1-template.c \
283	$(gssapi_files) gssapi_asn1*.h* gssapi_asn1_files gssapi_asn1-template.c \
284	gss-commands.h gss-commands.c
285
286$(spnego_files) spnego_asn1.hx spnego_asn1-priv.hx: spnego_asn1_files
287$(gssapi_files) gssapi_asn1.hx gssapi_asn1-priv.hx: gssapi_asn1_files
288
289spnego_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/spnego/spnego.asn1 $(srcdir)/spnego/spnego.opt
290	$(ASN1_COMPILE) --option-file=$(srcdir)/spnego/spnego.opt $(srcdir)/spnego/spnego.asn1 spnego_asn1
291
292gssapi_asn1_files: $(ASN1_COMPILE_DEP) $(srcdir)/mech/gssapi.asn1
293	$(ASN1_COMPILE) $(srcdir)/mech/gssapi.asn1 gssapi_asn1
294
295$(srcdir)/krb5/gsskrb5-private.h:
296	cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p krb5/gsskrb5-private.h $(krb5src) || rm -f krb5/gsskrb5-private.h
297
298$(srcdir)/spnego/spnego-private.h:
299	cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p spnego/spnego-private.h $(spnegosrc) || rm -f spnego/spnego-private.h
300
301
302TESTS = test_oid test_names test_cfx
303# test_sequence 
304
305test_cfx_SOURCES = krb5/test_cfx.c
306
307check_PROGRAMS = test_acquire_cred $(TESTS)
308
309bin_PROGRAMS = gsstool
310noinst_PROGRAMS = test_cred test_kcred test_context test_ntlm
311
312test_context_SOURCES = test_context.c test_common.c test_common.h
313test_gssntlm_SOURCES = test_gssntlm.c test_common.c test_common.h
314test_acquire_cred_SOURCES = test_acquire_cred.c test_common.c test_common.h
315
316test_gssntlm_LDADD = \
317	$(top_builddir)/lib/ntlm/libheimntlm.la \
318	$(LDADD)
319
320LDADD = libgssapi.la \
321	$(top_builddir)/lib/krb5/libkrb5.la \
322	$(LIB_roken)
323
324# gss
325
326dist_gsstool_SOURCES = gsstool.c
327nodist_gsstool_SOURCES = gss-commands.c gss-commands.h
328
329gsstool_LDADD = libgssapi.la \
330	$(top_builddir)/lib/sl/libsl.la \
331	$(top_builddir)/lib/krb5/libkrb5.la \
332	$(LIB_readline) \
333	$(LIB_roken)
334
335gss-commands.c gss-commands.h: gss-commands.in
336	$(SLC) $(srcdir)/gss-commands.in
337
338$(gsstool_OBJECTS): gss-commands.h
339
340EXTRA_DIST = \
341	NTMakefile \
342	libgssapi-version.rc \
343	libgssapi-exports.def \
344	$(man_MANS) \
345	krb5/gkrb5_err.et \
346	mech/gssapi.asn1 \
347	spnego/spnego.asn1 \
348	spnego/spnego.opt \
349	version-script.map \
350	gss-commands.in
351
352$(libgssapi_la_OBJECTS): gkrb5_err.h gssapi_asn1.h gssapi_asn1-priv.h
353$(libgssapi_la_OBJECTS): spnego_asn1.h spnego_asn1-priv.h
354$(libgssapi_la_OBJECTS): $(srcdir)/gssapi/gssapi_oid.h
355$(libgssapi_la_OBJECTS): $(srcdir)/gssapi/gssapi_protos.h
356$(libgssapi_la_OBJECTS): $(srcdir)/gssapi/gssapi_private.h
357
358gkrb5_err.h gkrb5_err.c: $(srcdir)/krb5/gkrb5_err.et
359	$(COMPILE_ET) $(srcdir)/krb5/gkrb5_err.et
360
361$(srcdir)/gssapi/gssapi_oid.h $(srcdir)/mech/gss_oid.c:
362	perl $(srcdir)/gen-oid.pl -b base -h $(srcdir)/oid.txt > $(srcdir)/gssapi/gssapi_oid.h
363	perl $(srcdir)/gen-oid.pl -b base $(srcdir)/oid.txt > $(srcdir)/mech/gss_oid.c
364
365$(srcdir)/gssapi/gssapi_protos.h:
366	cd $(srcdir) && perl ../../cf/make-proto.pl -E GSS_LIB -q -P comment -o gssapi/gssapi_protos.h $(dist_libgssapi_la_SOURCES) || rm -f gssapi_protos.h
367
368$(srcdir)/gssapi/gssapi_private.h:
369	cd $(srcdir) && perl ../../cf/make-proto.pl -q -P comment -p gssapi_private.h $(mechsrc) || rm -f gssapi_private.h
370