xref: /illumos-gate/usr/src/lib/gss_mechs/mech_krb5/Makefile.com (revision efe44a0312f417787c2d6992582ad06b1b98cd8d)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
22#
23# Copyright (c) 2018, Joyent, Inc.
24#
25# This make file will build mech_krb5.so.1. This shared object
26# contains all the functionality needed to support the Kereros V5 GSS-API
27# mechanism. No other Kerberos libraries are needed.
28#
29
30LIBRARY= mech_krb5.a
31VERS = .1
32
33FILEMODE=	755
34
35# objects are listed by source directory
36REL_PATH= ../
37
38to_all:	all
39
40# crypto
41CRYPTO = cksumtype_to_string.o \
42	coll_proof_cksum.o enctype_compare.o enctype_to_string.o \
43	keyed_checksum_types.o keyed_cksum.o \
44	make_random_key.o string_to_cksumtype.o \
45	string_to_enctype.o string_to_key.o valid_cksumtype.o \
46	valid_enctype.o pkcs11slot.o state.o pbkdf2.o old_api_glue.o \
47	keylengths.o random_to_key.o
48
49CRYPTO_UTS= cksumtypes.o decrypt.o encrypt.o encrypt_length.o \
50	etypes.o nfold.o verify_checksum.o default_state.o \
51	prng.o block_size.o make_checksum.o checksum_length.o hmac.o \
52	mandatory_sumtype.o combine_keys.o
53
54# crypto/raw
55CRYPTO_RAW= raw_decrypt.o raw_encrypt.o
56
57# crypto/des user space only
58CRYPTO_DES= afsstring2key.o string2key.o
59
60# crypto/des common to user and kernel space
61CRYPTO_DES_UTS= f_cbc.o f_cksum.o f_parity.o weak_key.o d3_cbc.o
62
63# crypto/arcfour user space only
64CRYPTO_ARCFOUR= arcfour_str2key.o
65
66# crypto/aes user space only
67CRYPTO_AES=	aes_s2k.o
68
69# crypto/arcfour common to user and kernel space
70CRYPTO_ARCFOUR_UTS = k5_arcfour.o
71
72#crypto/dk
73CRYPTO_DK= stringtokey.o
74
75CRYPTO_DK_UTS= checksum.o derive.o dk_decrypt.o dk_encrypt.o
76
77# crypto/crc32
78CRYPTO_CRC32= crc.o
79
80# crypto/crc32
81CRYPTO_CRC32_UTS= crc32.o
82
83# crypto/md4
84CRYPTO_MD4= md4.o
85
86# crypto/enc_provider
87CRYPTO_ENC= des.o des3.o arcfour_provider.o aes_provider.o
88
89# crypto/hash_provider
90CRYPTO_HASH= hash_md5.o hash_sha1.o hash_ef_generic.o
91CRYPTO_HASH_UTS= hash_crc32.o
92
93# crypto/keyhash_provider
94CRYPTO_KEYHASH= k5_md5des.o hmac_md5.o
95CRYPTO_KEYHASH_UTS= descbc.o
96
97# crypto/old
98CRYPTO_OLD=  des_stringtokey.o
99
100# crypto/old
101CRYPTO_OLD_UTS=  old_encrypt.o old_decrypt.o
102
103# et error_tables
104ET=	adb_err.o adm_err.o asn1_err.o chpass_util_strings.o error_message.o \
105	com_err.o gssapi_err_generic.o import_err.o \
106	gssapi_err_krb5.o kadm_err.o kdb5_err.o kpasswd_strings.o kdc5_err.o \
107	krb5_err.o kv5m_err.o prof_err.o pty_err.o ss_err.o
108
109# krb5/asn.1
110K5_ASN1= asn1_decode.o asn1_k_decode.o asn1_encode.o \
111	asn1_get.o asn1_make.o \
112	asn1buf.o krb5_decode.o krb5_encode.o \
113	asn1_k_encode.o asn1_misc.o ldap_key_seq.o
114
115# krb5/ccache
116K5_CC= cc_file.o cc_memory.o ccbase.o ccfns.o ccdefault.o ccdefops.o ser_cc.o cc_retr.o cccopy.o
117
118# krb5/keytab
119K5_KT=	ktadd.o ktbase.o ktdefault.o ktfr_entry.o \
120	ktremove.o read_servi.o kt_file.o kt_srvtab.o ktfns.o kt_findrealm.o \
121	kt_solaris.o
122
123K5_KRB= addr_comp.o  addr_order.o  addr_srch.o \
124	auth_con.o  bld_pr_ext.o  bld_princ.o  chk_trans.o \
125	conv_princ.o  copy_addrs.o  copy_creds.o  copy_data.o  copy_tick.o \
126	cp_key_cnt.o  decode_kdc.o  decrypt_tk.o  encode_kdc.o  encrypt_tk.o \
127	free_rtree.o  fwd_tgt.o  gc_frm_kdc.o  gc_via_tkt.o  gen_seqnum.o \
128	gen_subkey.o  get_creds.o  get_in_tkt.o kdc_rep_dc.o  mk_cred.o  \
129	mk_error.o  mk_priv.o  mk_rep.o  mk_req.o  mk_req_ext.o  mk_safe.o \
130	pr_to_salt.o   princ_comp.o  privacy_allowed.o  rd_cred.o \
131	rd_error.o  rd_priv.o  rd_rep.o  rd_req.o  rd_req_dec.o  rd_safe.o \
132	recvauth.o  send_tgs.o  sendauth.o  srv_rcache.o  str_conv.o \
133	tgtname.o  valid_times.o  walk_rtree.o appdefault.o deltat.o \
134	enc_helper.o gic_keytab.o gic_opt.o gic_pwd.o preauth2.o \
135	preauth.o vfy_increds.o vic_opt.o set_realm.o krb5_libinit.o chpw.o \
136	init_keyblock.o init_allocated_keyblock.o get_set_keyblock.o kerrs.o \
137	getuid.o pac.o
138
139K5_KRB_UTS= copy_athctr.o copy_auth.o copy_cksum.o copy_key.o \
140	copy_princ.o init_ctx.o kfree.o parse.o ser_actx.o \
141	ser_adata.o ser_addr.o ser_auth.o \
142	ser_cksum.o ser_ctx.o ser_key.o \
143	ser_princ.o serialize.o unparse.o
144
145K5_OS=	an_to_ln.o def_realm.o ccdefname.o free_krbhs.o free_hstrl.o \
146	full_ipadr.o get_krbhst.o gen_port.o genaddrs.o gen_rname.o \
147	gmt_mktime.o hostaddr.o hst_realm.o krbfileio.o \
148	ktdefname.o kuserok.o mk_faddr.o localaddr.o locate_kdc.o lock_file.o \
149	net_read.o net_write.o osconfig.o port2ip.o promptusr.o \
150	read_msg.o read_pwd.o realm_dom.o sendto_kdc.o sn2princ.o \
151	unlck_file.o ustime.o write_msg.o safechown.o \
152	prompter.o realm_iter.o foreachaddr.o \
153	dnsglue.o dnssrv.o thread_safe.o changepw.o accessor.o
154
155K5_OS_UTS=init_os_ctx.o timeofday.o toffset.o c_ustime.o
156
157K5_POSIX= setenv.o
158
159K5_RCACHE=rc_base.o rc_file.o rc_mem.o rc_common.o rc_io.o rcdef.o rc_conv.o \
160	ser_rc.o rcfns.o rc_none.o
161
162MECH= 	accept_sec_context.o store_cred.o \
163	add_cred.o disp_com_err_status.o  disp_major_status.o \
164	compare_name.o context_time.o copy_ccache.o \
165	disp_name.o disp_status.o export_sec_context.o \
166	get_tkt_flags.o import_name.o indicate_mechs.o \
167	inq_context.o inq_cred.o inq_names.o \
168	krb5_gss_glue.o \
169	pname_to_uid.o process_context_token.o \
170        rel_buffer.o rel_oid.o rel_oid_set.o \
171	rel_cred.o  rel_name.o util_buffer.o \
172	util_dup.o util_localhost.o \
173	util_cksum.o acquire_cred.o init_sec_context.o \
174	set_ccache.o acquire_cred_with_pw.o lucid_context.o \
175	set_allowable_enctypes.o oid_ops.o export_name.o gss_libinit.o \
176	util_buffer_set.o util_errmap.o
177
178MECH_UTS= delete_sec_context.o gssapi_krb5.o \
179	import_sec_context.o k5seal.o k5sealv3.o \
180	k5unseal.o seal.o ser_sctx.o \
181	sign.o unseal.o util_crypt.o  \
182	util_ordering.o util_seed.o util_seqnum.o \
183	util_set.o  util_token.o util_validate.o \
184	val_cred.o verify.o wrap_size_limit.o
185
186GSSAPI_UTS= gen_oids.o
187
188PROFILE_OBJS= prof_tree.o prof_file.o prof_parse.o prof_init.o \
189	prof_set.o prof_get.o prof_solaris.o
190
191SUPPORT_OBJS= fake-addrinfo.o init-addrinfo.o threads.o errors.o plugins.o \
192	      utf8_conv.o utf8.o
193
194KWARN_OBJS= kwarnd_clnt_stubs.o kwarnd_clnt.o kwarnd_handle.o kwarnd_xdr.o
195
196OBJECTS= \
197	$(MECH) $(MECH_UTS) $(GSSAPI_UTS)\
198	$(SUPPORT_OBJS) \
199	$(KWARN_OBJS) \
200	$(PROFILE_OBJS) \
201	$(CRYPTO) $(CRYPTO_UTS) \
202	$(CRYPTO_CRC32) \
203	$(CRYPTO_CRC32_UTS) \
204	$(CRYPTO_DES) $(CRYPTO_DES_UTS) \
205	$(CRYPTO_MD4) \
206	$(CRYPTO_DK) $(CRYPTO_DK_UTS) \
207	$(CRYPTO_ARCFOUR) $(CRYPTO_ARCFOUR_UTS) \
208	$(CRYPTO_AES) \
209	$(CRYPTO_ENC) \
210	$(CRYPTO_HASH) $(CRYPTO_HASH_UTS) \
211	$(CRYPTO_KEYHASH) $(CRYPTO_KEYHASH_UTS) \
212	$(CRYPTO_OLD) $(CRYPTO_OLD_UTS) \
213	$(CRYPTO_RAW) \
214	$(ET) \
215	$(K5_ASN1) \
216	$(K5_CC) \
217	$(K5_KT) \
218	$(K5_KRB) $(K5_KRB_UTS) \
219	$(K5_OS) $(K5_OS_UTS) \
220	$(K5_POSIX) $(K5_RCACHE)
221
222# include library definitions
223include $(REL_PATH)/../../Makefile.lib
224
225# Must come after Makefile.lib so CPPFLAGS doesn't get overwritten
226include $(SRC)/lib/gss_mechs/mech_krb5/Makefile.mech_krb5
227
228K5LIBLINK=$(LIBRARY:%.a=lib%.so)
229
230# override default text domain
231TEXT_DOMAIN= SUNW_OST_NETRPC
232INS.liblink2=	-$(RM) $@; $(SYMLINK) gss/$(LIBLINKPATH)$(LIBLINKS) $@
233
234CPPFLAGS += -I$(REL_PATH)/libgss -I../include  \
235		-I$(SRC)/uts/common/gssapi \
236		-I$(SRC)/uts/common/gssapi/include \
237		-I$(SRC)/lib/gss_mechs/mech_krb5/mech \
238		-I$(SRC)/lib/gss_mechs/mech_krb5/include/krb5 \
239		-I../include/krb5 \
240		-I../krb5/keytab \
241		-I../krb5/krb \
242		-I../krb5/os \
243		-I../krb5/ccache \
244		-I../krb5/rcache \
245		-I$(SRC)/lib/krb5 \
246		-I$(SRC)/lib/krb5/kadm5 \
247		-I$(SRC)/uts/common/gssapi/mechs/krb5/include \
248		-I$(SRC)/uts/common/gssapi/mechs/krb5/crypto/des
249
250# KRB5_DEFS can be assigned various preprocessor flags, typically -D
251# defines on the make invocation.  These values will be appended to
252# CPPFLAGS so the other flags in CPPFLAGS will not be overwritten.
253
254CPPFLAGS += $(KRB5_DEFS)
255
256CERRWARN +=	-_gcc=-Wno-unused-function
257CERRWARN +=	-_gcc=-Wno-type-limits
258CERRWARN +=	$(CNOWARN_UNINIT)
259CERRWARN +=	-_gcc=-Wno-parentheses
260CERRWARN +=	-_gcc=-Wno-unused-variable
261CERRWARN +=	-_gcc=-Wno-unused-but-set-variable
262CERRWARN +=	-_gcc=-Wno-unused-label
263CERRWARN +=	-_gcc=-Wno-unused-value
264CERRWARN +=	-_gcc=-Wno-empty-body
265CERRWARN +=	-_gcc=-Wno-address
266
267# needs work
268SMATCH=off
269
270MAPFILES =	../mapfile-vers
271
272#CPPFLAGS += 	-D_REENTRANT
273$(PICS) :=	CFLAGS += $(XFFLAG)
274$(PICS) :=	CFLAGS64 += $(XFFLAG)
275$(PICS) :=	CCFLAGS += $(XFFLAG)
276$(PICS) :=	CCFLAGS64 += $(XFFLAG)
277
278LIBS = $(DYNLIB) $(K5LIBLINK)
279
280# override ROOTLIBDIR and ROOTLINKS
281ROOTLIBDIR=	$(ROOT)/usr/lib/gss
282ROOTLIBDIR64=	$(ROOT)/usr/lib/$(MACH64)/gss
283
284K5MECHLINK=	$(K5LIBLINK:%=$(ROOT)/usr/lib/%)
285K5MECHLINK64=	$(K5LIBLINK:%=$(ROOT)/usr/lib/$(MACH64)/%)
286
287ROOTLIBS=	$(LIBS:%=$(ROOTLIBDIR)/%) $(K5MECHLINK)
288ROOTLIBS64=	$(LIBS:%=$(ROOTLIBDIR64)/%) $(K5MECHLINK64)
289
290$(ROOTLIBDIR) $(ROOTLIBDIR64):
291	$(INS.dir)
292
293# create libmech_krb5 link locally
294$(K5LIBLINK): $(DYNLIB)
295	-$(RM) $@; $(SYMLINK) $(DYNLIB) $@
296
297# create libmech_krb5 link in $ROOT/usr/lib/gss/
298$(ROOTLIBDIR)/$(K5LIBLINK):	$(ROOTLIBDIR)/$(LIBLINKS)$(VERS)
299	$(INS.liblink)
300
301# create libmech_krb5 link in $ROOT/usr/lib/$(MACH64)/gss
302$(ROOTLIBDIR64)/$(K5LIBLINK):	$(ROOTLIBDIR64)/$(LIBLINKS)$(VERS)
303	$(INS.liblink)
304
305# create libmech_krb5 link in ROOT/usr/lib
306$(K5MECHLINK):	$(ROOTLIBDIR)/$(LIBLINKS)$(VERS)
307	$(INS.liblink2)
308
309# create libmech_krb5 link in ROOT/usr/lib/$(MACH64)
310$(K5MECHLINK64):	$(ROOTLIBDIR64)/$(LIBLINKS)$(VERS)
311	$(INS.liblink2)
312
313LDLIBS += -lgss -lsocket -lresolv -lc -lpkcs11 -lnsl -lkstat
314# -z ignore causes linker to ignore unneeded dependencies.  This is
315#  needed because -lnsl is only used if DEBUG is defined.
316DYNFLAGS += $(ZIGNORE)
317
318# mech lib needs special initialization at load time
319DYNFLAGS += -zinitarray=krb5_ld_init
320
321objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/%.c
322	$(COMPILE.c)  -o $@ $<
323	$(POST_PROCESS_O)
324
325objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/mech/%.c
326	$(COMPILE.c)  -o $@ $<
327	$(POST_PROCESS_O)
328
329objs/%.o pics/%.o: $(SRC)/lib/gss_mechs/mech_krb5/mech/%.c
330	$(COMPILE.c)  -o $@ $<
331	$(POST_PROCESS_O)
332
333objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/%.c
334	$(COMPILE.c)  -o $@ $<
335	$(POST_PROCESS_O)
336
337objs/%.o pics/%.o: $(REL_PATH)/crypto/%.c
338	$(COMPILE.c)  -o $@ $<
339	$(POST_PROCESS_O)
340
341objs/%.o pics/%.o: $(REL_PATH)/crypto/md4/%.c
342	$(COMPILE.c)  -o $@ $<
343	$(POST_PROCESS_O)
344
345objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/des/%.c
346	$(COMPILE.c)  -o $@ $<
347	$(POST_PROCESS_O)
348
349objs/%.o pics/%.o: $(REL_PATH)/crypto/des/%.c
350	$(COMPILE.c)  -o $@ $<
351	$(POST_PROCESS_O)
352
353objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/arcfour/%.c
354	$(COMPILE.c)  -o $@ $<
355	$(POST_PROCESS_O)
356
357objs/%.o pics/%.o: $(REL_PATH)/crypto/arcfour/%.c
358	$(COMPILE.c)  -o $@ $<
359	$(POST_PROCESS_O)
360
361objs/%.o pics/%.o: $(REL_PATH)/crypto/aes/%.c
362	$(COMPILE.c)  -o $@ $<
363	$(POST_PROCESS_O)
364
365objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/dk/%.c
366	$(COMPILE.c)  -o $@ $<
367	$(POST_PROCESS_O)
368
369objs/%.o pics/%.o: $(REL_PATH)/crypto/dk/%.c
370	$(COMPILE.c)  -o $@ $<
371	$(POST_PROCESS_O)
372
373objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/raw/%.c
374	$(COMPILE.c)  -o $@ $<
375	$(POST_PROCESS_O)
376
377objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/crc32/%.c
378	$(COMPILE.c)  -o $@ $<
379	$(POST_PROCESS_O)
380
381objs/%.o pics/%.o: $(REL_PATH)/crypto/crc32/%.c
382	$(COMPILE.c)  -o $@ $<
383	$(POST_PROCESS_O)
384
385objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/sha1/%.c
386	$(COMPILE.c)  -o $@ $<
387	$(POST_PROCESS_O)
388
389objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/enc_provider/%.c
390	$(COMPILE.c)  -o $@ $<
391	$(POST_PROCESS_O)
392
393objs/%.o pics/%.o: $(REL_PATH)/crypto/hash_provider/%.c
394	$(COMPILE.c)  -o $@ $<
395	$(POST_PROCESS_O)
396
397objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/hash_provider/%.c
398	$(COMPILE.c)  -o $@ $<
399	$(POST_PROCESS_O)
400
401objs/%.o pics/%.o: $(REL_PATH)/crypto/keyhash_provider/%.c
402	$(COMPILE.c)  -o $@ $<
403	$(POST_PROCESS_O)
404
405objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/keyhash_provider/%.c
406	$(COMPILE.c)  -o $@ $<
407	$(POST_PROCESS_O)
408
409objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/old/%.c
410	$(COMPILE.c)  -o $@ $<
411	$(POST_PROCESS_O)
412
413objs/%.o pics/%.o: $(REL_PATH)/crypto/old/%.c
414	$(COMPILE.c)  -o $@ $<
415	$(POST_PROCESS_O)
416
417objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/os/%.c
418	$(COMPILE.c)  -o $@ $<
419	$(POST_PROCESS_O)
420
421objs/%.o pics/%.o: $(REL_PATH)/crypto/sha1/%.c
422	$(COMPILE.c)  -o $@ $<
423	$(POST_PROCESS_O)
424
425objs/%.o pics/%.o: $(REL_PATH)/et/%.c
426	$(COMPILE.c)  -o $@ $<
427	$(POST_PROCESS_O)
428
429objs/%.o pics/%.o: $(REL_PATH)/krb5/asn.1/%.c
430	$(COMPILE.c)  -o $@ $<
431	$(POST_PROCESS_O)
432
433objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/%.c
434	$(COMPILE.c)  -o $@ $<
435	$(POST_PROCESS_O)
436
437objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/file/%.c
438	$(COMPILE.c)  -o $@ $<
439	$(POST_PROCESS_O)
440
441objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/stdio/%.c
442	$(COMPILE.c)  -o $@ $<
443	$(POST_PROCESS_O)
444
445objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/memory/%.c
446	$(COMPILE.c)  -o $@ $<
447	$(POST_PROCESS_O)
448
449objs/%.o pics/%.o: $(REL_PATH)/krb5/keytab/%.c
450	$(COMPILE.c)  -o $@ $<
451	$(POST_PROCESS_O)
452
453objs/%.o pics/%.o: $(REL_PATH)/krb5/keytab/file/%.c
454	$(COMPILE.c)  -o $@ $<
455	$(POST_PROCESS_O)
456
457objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/krb5/krb/%.c
458	$(COMPILE.c)  -o $@ $<
459	$(POST_PROCESS_O)
460
461objs/%.o pics/%.o: $(REL_PATH)/krb5/krb/%.c
462	$(COMPILE.c)  -o $@ $<
463	$(POST_PROCESS_O)
464
465objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/krb5/os/%.c
466	$(COMPILE.c)  -o $@ $<
467	$(POST_PROCESS_O)
468
469objs/%.o pics/%.o: $(REL_PATH)/krb5/os/%.c
470	$(COMPILE.c)  -o $@ $<
471	$(POST_PROCESS_O)
472
473objs/%.o pics/%.o: $(REL_PATH)/krb5/posix/%.c
474	$(COMPILE.c)  -o $@ $<
475	$(POST_PROCESS_O)
476
477objs/%.o pics/%.o: $(REL_PATH)/krb5/rcache/%.c
478	$(COMPILE.c)  -o $@ $<
479	$(POST_PROCESS_O)
480
481objs/%.o pics/%.o: $(REL_PATH)/profile/%.c
482	$(COMPILE.c)  -o $@ $<
483	$(POST_PROCESS_O)
484
485objs/%.o pics/%.o: $(REL_PATH)/support/%.c
486	$(COMPILE.c)  -o $@ $<
487	$(POST_PROCESS_O)
488
489# include library targets
490include $(REL_PATH)/../../Makefile.targ
491# We need to include all CPPFLAGS for the files since we are using
492# the macro to expand and they are not aware of flags yet .. ugh..
493
494OS_FLAGS = -DHAVE_LIBSOCKET -DHAVE_LIBNSL -DTIME_WITH_SYS_TIME \
495	-DHAVE_UNISTD_H -DHAVE_SYS_TIME_H -DHAVE_REGEX_H \
496	-DHAVE_REGEXP_H -DHAVE_RE_COMP -DHAVE_REGCOMP \
497	-DPOSIX_TYPES -DNDBM \
498	-DHAVE_STDLIB_H -DHAVE_STDARG_H -DHAVE_SYS_TYPES_H \
499	-DHAVE_NETINET_IN_H -DHAVE_SRAND48 \
500	-DHAVE_SRAND -DHAVE_SRANDOM -DHAVE_GETPID \
501	-DHAVE_ERRNO -DHAVE_STRFTIME -DHAVE_STRPTIME -DHAVE_STRERROR \
502	-DHAVE_STAT -DSIZEOF_INT=4 -DPROVIDE_KERNEL_IMPORT \
503	-DHAVE_STDINT_H -DPOSIX_SIGNALS -DHAVE_GETENV -DHAVE_SETENV \
504	-DHAVE_UNSETENV -DHAVE_FCHMOD -DHAVE_STRUCT_LIFCONF \
505	-DHAVE_VASPRINTF -DHAVE_RES_NINIT -DHAVE_RES_NDESTROY \
506	-DHAVE_RES_NSEARCH
507
508CPPFLAGS += -I$(REL_PATH)krb5/ccache/file $(OS_FLAGS)
509
510SOURCES= \
511	$(CRYPTO_OS_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/os/%.c)\
512	$(K5_OS_UTS:%.o=$(SRC)/uts/common/gssapi/mechs/krb5/krb5/os/%.c) \
513	$(K5_OS:%.o=$(SRC)/lib/gss_mechs/mech_krb5/krb5/os/%.c) \
514	$(CRYPTO:%.o=$(SRC)/lib/gss_mechs/mech_krb5/crypto/%.c) \
515	$(CRYPTO_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/%.c)\
516	$(CRYPTO_RAW:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/raw/%.c)\
517	$(CRYPTO_DES:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/des/%.c)\
518	$(CRYPTO_DES_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/des/%.c)\
519	$(CRYPTO_ARCFOUR:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/arcfour/%.c)\
520	$(CRYPTO_ARCFOUR_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/arcfour/%.c)\
521	$(CRYPTO_AES:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/aes/%.c)\
522	$(CRYPTO_DK:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/dk/%.c)\
523	$(CRYPTO_DK_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/dk/%.c)\
524	$(CRYPTO_CRC32:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/crc32/%.c)\
525	$(CRYPTO_MD4:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/md4/%.c)\
526	$(CRYPTO_CRC32_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/crc32/%.c)\
527	$(CRYPTO_ENC:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/enc_provider/%.c)\
528	$(CRYPTO_HASH:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/hash_provider/%.c)\
529	$(CRYPTO_HASH_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/hash_provider/%.c)\
530	$(CRYPTO_KEYHASH:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/keyhash_provider/%.c)\
531	$(CRYPTO_KEYHASH_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/keyhash_provider/%.c)\
532	$(CRYPTO_OLD:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/old/%.c)\
533	$(CRYPTO_OLD_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/old/%.c)\
534	$(ET:%.o= $(SRC)/lib/gss_mechs/mech_krb5/et/%.c) \
535	$(K5_ASN1:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/asn.1/%.c) \
536	$(K5_CC:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/ccache/%.c) \
537	$(K5_KT:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/keytab/%.c) \
538	$(K5_KRB:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/krb/%.c)\
539	$(K5_KRB_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/krb5/krb/%.c)\
540	$(K5_OS:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/os/%.c)\
541	$(K5_OS_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/krb5/os/%.c)\
542	$(K5_POSIX:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/posix/%.c)\
543	$(K5_RCACHE:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/rcache/%.c) \
544	$(MECH:%.o= $(SRC)/lib/gss_mechs/mech_krb5/mech/%.c) \
545	$(MECH_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/mech/%.c) \
546	$(GSSAPI_UTS:%.o= $(SRC)/uts/common/gssapi/%.c) \
547	$(PROFILE_OBJS:%.o= $(SRC)/lib/gss_mechs/mech_krb5/profile/%.c) \
548	$(SUPPORT_OBJS:%.o= $(SRC)/lib/gss_mechs/mech_krb5/support/%.c)
549
550kwarnd.h:	$(SRC)/cmd/krb5/kwarn/kwarnd.x
551	$(RM) $@
552	$(RPCGEN) -M -h $(SRC)/cmd/krb5/kwarn/kwarnd.x | \
553	$(SED) -e 's!$(SRC)/cmd/krb5/kwarn/kwarnd.h!kwarnd.h!' > $@
554
555kwarnd_xdr.c:	kwarnd.h $(SRC)/cmd/krb5/kwarn/kwarnd.x
556	$(RM) $@
557	$(RPCGEN) -M -c $(SRC)/cmd/krb5/kwarn/kwarnd.x | \
558	$(SED) -e 's!$(SRC)/cmd/krb5/kwarn/kwarnd.h!kwarnd.h!' > $@
559
560kwarnd_clnt.c:   kwarnd.h $(SRC)/cmd/krb5/kwarn/kwarnd.x
561	$(RM) $@
562	$(RPCGEN) -M -l $(SRC)/cmd/krb5/kwarn/kwarnd.x | \
563	$(SED) -e 's!$(SRC)/cmd/krb5/kwarn/kwarnd.h!kwarnd.h!' > $@
564
565kwarnd_clnt_stubs.c: kwarnd.h $(SRC)/cmd/krb5/kwarn/kwarnd_clnt_stubs.c
566	$(RM) $@
567	$(CP) $(SRC)/cmd/krb5/kwarn/kwarnd_clnt_stubs.c $@
568
569kwarnd_handle.c: $(SRC)/cmd/krb5/kwarn/kwarnd_handle.c
570	$(RM) $@
571	$(CP) $(SRC)/cmd/krb5/kwarn/kwarnd_handle.c $@
572
573CLOBBERFILES += kwarnd.h \
574	kwarnd_clnt.c kwarnd_clnt_stubs.c kwarnd_handle.c kwarnd_xdr.c
575
576# So lint.out won't be needlessly recreated
577lint: $(LINTOUT)
578
579$(LINTOUT): $(SOURCES)
580	$(LINT.c) -o $(LIBNAME) $(SOURCES) > $(LINTOUT) 2>&1
581
582