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.
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.
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]
21 # Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
23 # Copyright (c) 2018, Joyent, Inc.
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.
35 # objects are listed by source directory
41 CRYPTO = 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
49 CRYPTO_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
55 CRYPTO_RAW= raw_decrypt.o raw_encrypt.o
57 # crypto/des user space only
58 CRYPTO_DES= afsstring2key.o string2key.o
60 # crypto/des common to user and kernel space
61 CRYPTO_DES_UTS= f_cbc.o f_cksum.o f_parity.o weak_key.o d3_cbc.o
63 # crypto/arcfour user space only
64 CRYPTO_ARCFOUR= arcfour_str2key.o
66 # crypto/aes user space only
69 # crypto/arcfour common to user and kernel space
70 CRYPTO_ARCFOUR_UTS = k5_arcfour.o
73 CRYPTO_DK= stringtokey.o
75 CRYPTO_DK_UTS= checksum.o derive.o dk_decrypt.o dk_encrypt.o
81 CRYPTO_CRC32_UTS= crc32.o
87 CRYPTO_ENC= des.o des3.o arcfour_provider.o aes_provider.o
89 # crypto/hash_provider
90 CRYPTO_HASH= hash_md5.o hash_sha1.o hash_ef_generic.o
91 CRYPTO_HASH_UTS= hash_crc32.o
93 # crypto/keyhash_provider
94 CRYPTO_KEYHASH= k5_md5des.o hmac_md5.o
95 CRYPTO_KEYHASH_UTS= descbc.o
98 CRYPTO_OLD= des_stringtokey.o
101 CRYPTO_OLD_UTS= old_encrypt.o old_decrypt.o
104 ET= 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
110 K5_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
116 K5_CC= cc_file.o cc_memory.o ccbase.o ccfns.o ccdefault.o ccdefops.o ser_cc.o cc_retr.o cccopy.o
119 K5_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 \
123 K5_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 \
139 K5_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
145 K5_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
155 K5_OS_UTS=init_os_ctx.o timeofday.o toffset.o c_ustime.o
159 K5_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
162 MECH= 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 \
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
178 MECH_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
186 GSSAPI_UTS= gen_oids.o
188 PROFILE_OBJS= prof_tree.o prof_file.o prof_parse.o prof_init.o \
189 prof_set.o prof_get.o prof_solaris.o
191 SUPPORT_OBJS= fake-addrinfo.o init-addrinfo.o threads.o errors.o plugins.o \
194 KWARN_OBJS= kwarnd_clnt_stubs.o kwarnd_clnt.o kwarnd_handle.o kwarnd_xdr.o
197 $(MECH) $(MECH_UTS) $(GSSAPI_UTS)\
201 $(CRYPTO) $(CRYPTO_UTS) \
203 $(CRYPTO_CRC32_UTS) \
204 $(CRYPTO_DES) $(CRYPTO_DES_UTS) \
206 $(CRYPTO_DK) $(CRYPTO_DK_UTS) \
207 $(CRYPTO_ARCFOUR) $(CRYPTO_ARCFOUR_UTS) \
210 $(CRYPTO_HASH) $(CRYPTO_HASH_UTS) \
211 $(CRYPTO_KEYHASH) $(CRYPTO_KEYHASH_UTS) \
212 $(CRYPTO_OLD) $(CRYPTO_OLD_UTS) \
218 $(K5_KRB) $(K5_KRB_UTS) \
219 $(K5_OS) $(K5_OS_UTS) \
220 $(K5_POSIX) $(K5_RCACHE)
222 # include library definitions
223 include $(REL_PATH)/../../Makefile.lib
225 # Must come after Makefile.lib so CPPFLAGS doesn't get overwritten
226 include $(SRC)/lib/gss_mechs/mech_krb5/Makefile.mech_krb5
228 K5LIBLINK=$(LIBRARY:%.a=lib%.so)
230 # override default text domain
231 TEXT_DOMAIN= SUNW_OST_NETRPC
232 INS.liblink2= -$(RM) $@; $(SYMLINK) gss/$(LIBLINKPATH)$(LIBLINKS) $@
234 CPPFLAGS += -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 \
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
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.
254 CPPFLAGS += $(KRB5_DEFS)
256 CERRWARN += -Wno-unused-function
257 CERRWARN += -Wno-type-limits
258 CERRWARN += -Wno-uninitialized
259 CERRWARN += -Wno-parentheses
260 CERRWARN += -Wno-unused-variable
261 CERRWARN += -Wno-unused-but-set-variable
262 CERRWARN += -Wno-unused-label
263 CERRWARN += -Wno-unused-value
264 CERRWARN += -Wno-empty-body
265 CERRWARN += -Wno-address
270 MAPFILES = ../mapfile-vers
273 LIBS = $(DYNLIB) $(K5LIBLINK)
275 # override ROOTLIBDIR and ROOTLINKS
276 ROOTLIBDIR= $(ROOT)/usr/lib/gss
277 ROOTLIBDIR64= $(ROOT)/usr/lib/$(MACH64)/gss
279 K5MECHLINK= $(K5LIBLINK:%=$(ROOT)/usr/lib/%)
280 K5MECHLINK64= $(K5LIBLINK:%=$(ROOT)/usr/lib/$(MACH64)/%)
282 ROOTLIBS= $(LIBS:%=$(ROOTLIBDIR)/%) $(K5MECHLINK)
283 ROOTLIBS64= $(LIBS:%=$(ROOTLIBDIR64)/%) $(K5MECHLINK64)
285 $(ROOTLIBDIR) $(ROOTLIBDIR64):
288 # create libmech_krb5 link locally
289 $(K5LIBLINK): $(DYNLIB)
290 -$(RM) $@; $(SYMLINK) $(DYNLIB) $@
292 # create libmech_krb5 link in $ROOT/usr/lib/gss/
293 $(ROOTLIBDIR)/$(K5LIBLINK): $(ROOTLIBDIR)/$(LIBLINKS)$(VERS)
296 # create libmech_krb5 link in $ROOT/usr/lib/$(MACH64)/gss
297 $(ROOTLIBDIR64)/$(K5LIBLINK): $(ROOTLIBDIR64)/$(LIBLINKS)$(VERS)
300 # create libmech_krb5 link in ROOT/usr/lib
301 $(K5MECHLINK): $(ROOTLIBDIR)/$(LIBLINKS)$(VERS)
304 # create libmech_krb5 link in ROOT/usr/lib/$(MACH64)
305 $(K5MECHLINK64): $(ROOTLIBDIR64)/$(LIBLINKS)$(VERS)
308 LDLIBS += -lgss -lresolv -lc -lpkcs11 -lkstat
310 # mech lib needs special initialization at load time
311 DYNFLAGS += -Wl,-zinitarray=krb5_ld_init
313 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/%.c
314 $(COMPILE.c) -o $@ $<
317 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/mech/%.c
318 $(COMPILE.c) -o $@ $<
321 objs/%.o pics/%.o: $(SRC)/lib/gss_mechs/mech_krb5/mech/%.c
322 $(COMPILE.c) -o $@ $<
325 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/%.c
326 $(COMPILE.c) -o $@ $<
329 objs/%.o pics/%.o: $(REL_PATH)/crypto/%.c
330 $(COMPILE.c) -o $@ $<
333 objs/%.o pics/%.o: $(REL_PATH)/crypto/md4/%.c
334 $(COMPILE.c) -o $@ $<
337 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/des/%.c
338 $(COMPILE.c) -o $@ $<
341 objs/%.o pics/%.o: $(REL_PATH)/crypto/des/%.c
342 $(COMPILE.c) -o $@ $<
345 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/arcfour/%.c
346 $(COMPILE.c) -o $@ $<
349 objs/%.o pics/%.o: $(REL_PATH)/crypto/arcfour/%.c
350 $(COMPILE.c) -o $@ $<
353 objs/%.o pics/%.o: $(REL_PATH)/crypto/aes/%.c
354 $(COMPILE.c) -o $@ $<
357 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/dk/%.c
358 $(COMPILE.c) -o $@ $<
361 objs/%.o pics/%.o: $(REL_PATH)/crypto/dk/%.c
362 $(COMPILE.c) -o $@ $<
365 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/raw/%.c
366 $(COMPILE.c) -o $@ $<
369 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/crc32/%.c
370 $(COMPILE.c) -o $@ $<
373 objs/%.o pics/%.o: $(REL_PATH)/crypto/crc32/%.c
374 $(COMPILE.c) -o $@ $<
377 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/sha1/%.c
378 $(COMPILE.c) -o $@ $<
381 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/enc_provider/%.c
382 $(COMPILE.c) -o $@ $<
385 objs/%.o pics/%.o: $(REL_PATH)/crypto/hash_provider/%.c
386 $(COMPILE.c) -o $@ $<
389 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/hash_provider/%.c
390 $(COMPILE.c) -o $@ $<
393 objs/%.o pics/%.o: $(REL_PATH)/crypto/keyhash_provider/%.c
394 $(COMPILE.c) -o $@ $<
397 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/keyhash_provider/%.c
398 $(COMPILE.c) -o $@ $<
401 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/old/%.c
402 $(COMPILE.c) -o $@ $<
405 objs/%.o pics/%.o: $(REL_PATH)/crypto/old/%.c
406 $(COMPILE.c) -o $@ $<
409 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/os/%.c
410 $(COMPILE.c) -o $@ $<
413 objs/%.o pics/%.o: $(REL_PATH)/crypto/sha1/%.c
414 $(COMPILE.c) -o $@ $<
417 objs/%.o pics/%.o: $(REL_PATH)/et/%.c
418 $(COMPILE.c) -o $@ $<
421 objs/%.o pics/%.o: $(REL_PATH)/krb5/asn.1/%.c
422 $(COMPILE.c) -o $@ $<
425 objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/%.c
426 $(COMPILE.c) -o $@ $<
429 objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/file/%.c
430 $(COMPILE.c) -o $@ $<
433 objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/stdio/%.c
434 $(COMPILE.c) -o $@ $<
437 objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/memory/%.c
438 $(COMPILE.c) -o $@ $<
441 objs/%.o pics/%.o: $(REL_PATH)/krb5/keytab/%.c
442 $(COMPILE.c) -o $@ $<
445 objs/%.o pics/%.o: $(REL_PATH)/krb5/keytab/file/%.c
446 $(COMPILE.c) -o $@ $<
449 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/krb5/krb/%.c
450 $(COMPILE.c) -o $@ $<
453 objs/%.o pics/%.o: $(REL_PATH)/krb5/krb/%.c
454 $(COMPILE.c) -o $@ $<
457 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/krb5/os/%.c
458 $(COMPILE.c) -o $@ $<
461 objs/%.o pics/%.o: $(REL_PATH)/krb5/os/%.c
462 $(COMPILE.c) -o $@ $<
465 objs/%.o pics/%.o: $(REL_PATH)/krb5/posix/%.c
466 $(COMPILE.c) -o $@ $<
469 objs/%.o pics/%.o: $(REL_PATH)/krb5/rcache/%.c
470 $(COMPILE.c) -o $@ $<
473 objs/%.o pics/%.o: $(REL_PATH)/profile/%.c
474 $(COMPILE.c) -o $@ $<
477 objs/%.o pics/%.o: $(REL_PATH)/support/%.c
478 $(COMPILE.c) -o $@ $<
481 # include library targets
482 include $(REL_PATH)/../../Makefile.targ
483 # We need to include all CPPFLAGS for the files since we are using
484 # the macro to expand and they are not aware of flags yet .. ugh..
486 OS_FLAGS = -DHAVE_LIBSOCKET -DHAVE_LIBNSL -DTIME_WITH_SYS_TIME \
487 -DHAVE_UNISTD_H -DHAVE_SYS_TIME_H -DHAVE_REGEX_H \
488 -DHAVE_REGEXP_H -DHAVE_RE_COMP -DHAVE_REGCOMP \
489 -DPOSIX_TYPES -DNDBM \
490 -DHAVE_STDLIB_H -DHAVE_STDARG_H -DHAVE_SYS_TYPES_H \
491 -DHAVE_NETINET_IN_H -DHAVE_SRAND48 \
492 -DHAVE_SRAND -DHAVE_SRANDOM -DHAVE_GETPID \
493 -DHAVE_ERRNO -DHAVE_STRFTIME -DHAVE_STRPTIME -DHAVE_STRERROR \
494 -DHAVE_STAT -DSIZEOF_INT=4 -DPROVIDE_KERNEL_IMPORT \
495 -DHAVE_STDINT_H -DPOSIX_SIGNALS -DHAVE_GETENV -DHAVE_SETENV \
496 -DHAVE_UNSETENV -DHAVE_FCHMOD -DHAVE_STRUCT_LIFCONF \
497 -DHAVE_VASPRINTF -DHAVE_RES_NINIT -DHAVE_RES_NDESTROY \
500 CPPFLAGS += -I$(REL_PATH)krb5/ccache/file $(OS_FLAGS)
503 $(CRYPTO_OS_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/os/%.c)\
504 $(K5_OS_UTS:%.o=$(SRC)/uts/common/gssapi/mechs/krb5/krb5/os/%.c) \
505 $(K5_OS:%.o=$(SRC)/lib/gss_mechs/mech_krb5/krb5/os/%.c) \
506 $(CRYPTO:%.o=$(SRC)/lib/gss_mechs/mech_krb5/crypto/%.c) \
507 $(CRYPTO_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/%.c)\
508 $(CRYPTO_RAW:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/raw/%.c)\
509 $(CRYPTO_DES:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/des/%.c)\
510 $(CRYPTO_DES_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/des/%.c)\
511 $(CRYPTO_ARCFOUR:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/arcfour/%.c)\
512 $(CRYPTO_ARCFOUR_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/arcfour/%.c)\
513 $(CRYPTO_AES:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/aes/%.c)\
514 $(CRYPTO_DK:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/dk/%.c)\
515 $(CRYPTO_DK_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/dk/%.c)\
516 $(CRYPTO_CRC32:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/crc32/%.c)\
517 $(CRYPTO_MD4:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/md4/%.c)\
518 $(CRYPTO_CRC32_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/crc32/%.c)\
519 $(CRYPTO_ENC:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/enc_provider/%.c)\
520 $(CRYPTO_HASH:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/hash_provider/%.c)\
521 $(CRYPTO_HASH_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/hash_provider/%.c)\
522 $(CRYPTO_KEYHASH:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/keyhash_provider/%.c)\
523 $(CRYPTO_KEYHASH_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/keyhash_provider/%.c)\
524 $(CRYPTO_OLD:%.o= $(SRC)/lib/gss_mechs/mech_krb5/crypto/old/%.c)\
525 $(CRYPTO_OLD_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/crypto/old/%.c)\
526 $(ET:%.o= $(SRC)/lib/gss_mechs/mech_krb5/et/%.c) \
527 $(K5_ASN1:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/asn.1/%.c) \
528 $(K5_CC:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/ccache/%.c) \
529 $(K5_KT:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/keytab/%.c) \
530 $(K5_KRB:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/krb/%.c)\
531 $(K5_KRB_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/krb5/krb/%.c)\
532 $(K5_OS:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/os/%.c)\
533 $(K5_OS_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/krb5/os/%.c)\
534 $(K5_POSIX:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/posix/%.c)\
535 $(K5_RCACHE:%.o= $(SRC)/lib/gss_mechs/mech_krb5/krb5/rcache/%.c) \
536 $(MECH:%.o= $(SRC)/lib/gss_mechs/mech_krb5/mech/%.c) \
537 $(MECH_UTS:%.o= $(SRC)/uts/common/gssapi/mechs/krb5/mech/%.c) \
538 $(GSSAPI_UTS:%.o= $(SRC)/uts/common/gssapi/%.c) \
539 $(PROFILE_OBJS:%.o= $(SRC)/lib/gss_mechs/mech_krb5/profile/%.c) \
540 $(SUPPORT_OBJS:%.o= $(SRC)/lib/gss_mechs/mech_krb5/support/%.c)
542 kwarnd.h: $(SRC)/cmd/krb5/kwarn/kwarnd.x
544 $(RPCGEN) -M -h $(SRC)/cmd/krb5/kwarn/kwarnd.x | \
545 $(SED) -e 's!$(SRC)/cmd/krb5/kwarn/kwarnd.h!kwarnd.h!' > $@
547 kwarnd_xdr.c: kwarnd.h $(SRC)/cmd/krb5/kwarn/kwarnd.x
549 $(RPCGEN) -M -c $(SRC)/cmd/krb5/kwarn/kwarnd.x | \
550 $(SED) -e 's!$(SRC)/cmd/krb5/kwarn/kwarnd.h!kwarnd.h!' > $@
552 kwarnd_clnt.c: kwarnd.h $(SRC)/cmd/krb5/kwarn/kwarnd.x
554 $(RPCGEN) -M -l $(SRC)/cmd/krb5/kwarn/kwarnd.x | \
555 $(SED) -e 's!$(SRC)/cmd/krb5/kwarn/kwarnd.h!kwarnd.h!' > $@
557 kwarnd_clnt_stubs.c: kwarnd.h $(SRC)/cmd/krb5/kwarn/kwarnd_clnt_stubs.c
559 $(CP) $(SRC)/cmd/krb5/kwarn/kwarnd_clnt_stubs.c $@
561 kwarnd_handle.c: $(SRC)/cmd/krb5/kwarn/kwarnd_handle.c
563 $(CP) $(SRC)/cmd/krb5/kwarn/kwarnd_handle.c $@
565 CLOBBERFILES += kwarnd.h \
566 kwarnd_clnt.c kwarnd_clnt_stubs.c kwarnd_handle.c kwarnd_xdr.c