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 
  30 LIBRARY= mech_krb5.a
  31 VERS = .1
  32 
  33 FILEMODE=       755
  34 
  35 # objects are listed by source directory
  36 REL_PATH= ../
  37 
  38 to_all: all
  39 
  40 # crypto
  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
  48 
  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
  53 
  54 # crypto/raw
  55 CRYPTO_RAW= raw_decrypt.o raw_encrypt.o
  56 
  57 # crypto/des user space only
  58 CRYPTO_DES= afsstring2key.o string2key.o 
  59 
  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 
  62 
  63 # crypto/arcfour user space only
  64 CRYPTO_ARCFOUR= arcfour_str2key.o
  65 
  66 # crypto/aes user space only
  67 CRYPTO_AES=     aes_s2k.o
  68 
  69 # crypto/arcfour common to user and kernel space
  70 CRYPTO_ARCFOUR_UTS = k5_arcfour.o
  71 
  72 #crypto/dk
  73 CRYPTO_DK= stringtokey.o
  74 
  75 CRYPTO_DK_UTS= checksum.o derive.o dk_decrypt.o dk_encrypt.o
  76 
  77 # crypto/crc32
  78 CRYPTO_CRC32= crc.o
  79 
  80 # crypto/crc32
  81 CRYPTO_CRC32_UTS= crc32.o
  82 
  83 # crypto/md4
  84 CRYPTO_MD4= md4.o
  85 
  86 # crypto/enc_provider
  87 CRYPTO_ENC= des.o des3.o arcfour_provider.o aes_provider.o
  88 
  89 # crypto/hash_provider
  90 CRYPTO_HASH= hash_md5.o hash_sha1.o hash_ef_generic.o
  91 CRYPTO_HASH_UTS= hash_crc32.o
  92 
  93 # crypto/keyhash_provider
  94 CRYPTO_KEYHASH= k5_md5des.o hmac_md5.o
  95 CRYPTO_KEYHASH_UTS= descbc.o
  96 
  97 # crypto/old
  98 CRYPTO_OLD=  des_stringtokey.o 
  99 
 100 # crypto/old
 101 CRYPTO_OLD_UTS=  old_encrypt.o old_decrypt.o
 102 
 103 # et error_tables
 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
 108 
 109 # krb5/asn.1
 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
 114 
 115 # krb5/ccache
 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
 117 
 118 # krb5/keytab
 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 \
 121         kt_solaris.o
 122 
 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 \
 137         getuid.o pac.o
 138 
 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
 144 
 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
 154 
 155 K5_OS_UTS=init_os_ctx.o timeofday.o toffset.o c_ustime.o
 156 
 157 K5_POSIX= setenv.o
 158 
 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
 161 
 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 \
 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 
 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
 185 
 186 GSSAPI_UTS= gen_oids.o
 187 
 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
 190 
 191 SUPPORT_OBJS= fake-addrinfo.o init-addrinfo.o threads.o errors.o plugins.o \
 192               utf8_conv.o utf8.o
 193 
 194 KWARN_OBJS= kwarnd_clnt_stubs.o kwarnd_clnt.o kwarnd_handle.o kwarnd_xdr.o
 195 
 196 OBJECTS= \
 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
 223 include $(REL_PATH)/../../Makefile.lib
 224 
 225 # Must come after Makefile.lib so CPPFLAGS doesn't get overwritten
 226 include $(SRC)/lib/gss_mechs/mech_krb5/Makefile.mech_krb5
 227 
 228 K5LIBLINK=$(LIBRARY:%.a=lib%.so)
 229 
 230 # override default text domain
 231 TEXT_DOMAIN= SUNW_OST_NETRPC
 232 INS.liblink2=   -$(RM) $@; $(SYMLINK) gss/$(LIBLINKPATH)$(LIBLINKS) $@
 233 
 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 \
 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 
 254 CPPFLAGS += $(KRB5_DEFS)
 255 
 256 CERRWARN +=     -_gcc=-Wno-unused-function
 257 CERRWARN +=     -_gcc=-Wno-type-limits
 258 CERRWARN +=     -_gcc=-Wno-uninitialized
 259 CERRWARN +=     -_gcc=-Wno-parentheses
 260 CERRWARN +=     -_gcc=-Wno-unused-variable
 261 CERRWARN +=     -_gcc=-Wno-unused-but-set-variable
 262 CERRWARN +=     -_gcc=-Wno-unused-label
 263 CERRWARN +=     -_gcc=-Wno-unused-value
 264 CERRWARN +=     -_gcc=-Wno-empty-body
 265 CERRWARN +=     -_gcc=-Wno-address
 266 
 267 # needs work
 268 SMATCH=off
 269 
 270 MAPFILES =      ../mapfile-vers
 271 
 272 #CPPFLAGS +=    -D_REENTRANT
 273 $(PICS) :=      CFLAGS += $(XFFLAG)
 274 $(PICS) :=      CFLAGS64 += $(XFFLAG)
 275 $(PICS) :=      CCFLAGS += $(XFFLAG)
 276 $(PICS) :=      CCFLAGS64 += $(XFFLAG)
 277 
 278 LIBS = $(DYNLIB) $(K5LIBLINK)
 279 
 280 # override ROOTLIBDIR and ROOTLINKS
 281 ROOTLIBDIR=     $(ROOT)/usr/lib/gss
 282 ROOTLIBDIR64=   $(ROOT)/usr/lib/$(MACH64)/gss
 283 
 284 K5MECHLINK=     $(K5LIBLINK:%=$(ROOT)/usr/lib/%)
 285 K5MECHLINK64=   $(K5LIBLINK:%=$(ROOT)/usr/lib/$(MACH64)/%)
 286 
 287 ROOTLIBS=       $(LIBS:%=$(ROOTLIBDIR)/%) $(K5MECHLINK)
 288 ROOTLIBS64=     $(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 
 313 LDLIBS += -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.
 316 DYNFLAGS += $(ZIGNORE)
 317 
 318 # mech lib needs special initialization at load time
 319 DYNFLAGS += -zinitarray=krb5_ld_init
 320 
 321 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/%.c
 322         $(COMPILE.c)  -o $@ $<
 323         $(POST_PROCESS_O)
 324 
 325 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/mech/%.c
 326         $(COMPILE.c)  -o $@ $<
 327         $(POST_PROCESS_O)
 328 
 329 objs/%.o pics/%.o: $(SRC)/lib/gss_mechs/mech_krb5/mech/%.c
 330         $(COMPILE.c)  -o $@ $<
 331         $(POST_PROCESS_O)
 332 
 333 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/%.c
 334         $(COMPILE.c)  -o $@ $<
 335         $(POST_PROCESS_O)
 336 
 337 objs/%.o pics/%.o: $(REL_PATH)/crypto/%.c
 338         $(COMPILE.c)  -o $@ $<
 339         $(POST_PROCESS_O)
 340 
 341 objs/%.o pics/%.o: $(REL_PATH)/crypto/md4/%.c
 342         $(COMPILE.c)  -o $@ $<
 343         $(POST_PROCESS_O)
 344 
 345 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/des/%.c
 346         $(COMPILE.c)  -o $@ $<
 347         $(POST_PROCESS_O)
 348 
 349 objs/%.o pics/%.o: $(REL_PATH)/crypto/des/%.c
 350         $(COMPILE.c)  -o $@ $<
 351         $(POST_PROCESS_O)
 352 
 353 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/arcfour/%.c
 354         $(COMPILE.c)  -o $@ $<
 355         $(POST_PROCESS_O)
 356 
 357 objs/%.o pics/%.o: $(REL_PATH)/crypto/arcfour/%.c
 358         $(COMPILE.c)  -o $@ $<
 359         $(POST_PROCESS_O)
 360 
 361 objs/%.o pics/%.o: $(REL_PATH)/crypto/aes/%.c
 362         $(COMPILE.c)  -o $@ $<
 363         $(POST_PROCESS_O)
 364 
 365 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/dk/%.c
 366         $(COMPILE.c)  -o $@ $<
 367         $(POST_PROCESS_O)
 368 
 369 objs/%.o pics/%.o: $(REL_PATH)/crypto/dk/%.c
 370         $(COMPILE.c)  -o $@ $<
 371         $(POST_PROCESS_O)
 372 
 373 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/raw/%.c
 374         $(COMPILE.c)  -o $@ $<
 375         $(POST_PROCESS_O)
 376 
 377 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/crc32/%.c
 378         $(COMPILE.c)  -o $@ $<
 379         $(POST_PROCESS_O)
 380 
 381 objs/%.o pics/%.o: $(REL_PATH)/crypto/crc32/%.c
 382         $(COMPILE.c)  -o $@ $<
 383         $(POST_PROCESS_O)
 384 
 385 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/sha1/%.c
 386         $(COMPILE.c)  -o $@ $<
 387         $(POST_PROCESS_O)
 388 
 389 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/enc_provider/%.c
 390         $(COMPILE.c)  -o $@ $<
 391         $(POST_PROCESS_O)
 392 
 393 objs/%.o pics/%.o: $(REL_PATH)/crypto/hash_provider/%.c
 394         $(COMPILE.c)  -o $@ $<
 395         $(POST_PROCESS_O)
 396 
 397 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/hash_provider/%.c
 398         $(COMPILE.c)  -o $@ $<
 399         $(POST_PROCESS_O)
 400 
 401 objs/%.o pics/%.o: $(REL_PATH)/crypto/keyhash_provider/%.c
 402         $(COMPILE.c)  -o $@ $<
 403         $(POST_PROCESS_O)
 404 
 405 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/keyhash_provider/%.c
 406         $(COMPILE.c)  -o $@ $<
 407         $(POST_PROCESS_O)
 408 
 409 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/old/%.c
 410         $(COMPILE.c)  -o $@ $<
 411         $(POST_PROCESS_O)
 412 
 413 objs/%.o pics/%.o: $(REL_PATH)/crypto/old/%.c
 414         $(COMPILE.c)  -o $@ $<
 415         $(POST_PROCESS_O)
 416 
 417 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/crypto/os/%.c
 418         $(COMPILE.c)  -o $@ $<
 419         $(POST_PROCESS_O)
 420 
 421 objs/%.o pics/%.o: $(REL_PATH)/crypto/sha1/%.c
 422         $(COMPILE.c)  -o $@ $<
 423         $(POST_PROCESS_O)
 424 
 425 objs/%.o pics/%.o: $(REL_PATH)/et/%.c
 426         $(COMPILE.c)  -o $@ $<
 427         $(POST_PROCESS_O)
 428 
 429 objs/%.o pics/%.o: $(REL_PATH)/krb5/asn.1/%.c
 430         $(COMPILE.c)  -o $@ $<
 431         $(POST_PROCESS_O)
 432 
 433 objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/%.c
 434         $(COMPILE.c)  -o $@ $<
 435         $(POST_PROCESS_O)
 436 
 437 objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/file/%.c
 438         $(COMPILE.c)  -o $@ $<
 439         $(POST_PROCESS_O)
 440 
 441 objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/stdio/%.c
 442         $(COMPILE.c)  -o $@ $<
 443         $(POST_PROCESS_O)
 444 
 445 objs/%.o pics/%.o: $(REL_PATH)/krb5/ccache/memory/%.c
 446         $(COMPILE.c)  -o $@ $<
 447         $(POST_PROCESS_O)
 448 
 449 objs/%.o pics/%.o: $(REL_PATH)/krb5/keytab/%.c
 450         $(COMPILE.c)  -o $@ $<
 451         $(POST_PROCESS_O)
 452 
 453 objs/%.o pics/%.o: $(REL_PATH)/krb5/keytab/file/%.c
 454         $(COMPILE.c)  -o $@ $<
 455         $(POST_PROCESS_O)
 456 
 457 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/krb5/krb/%.c
 458         $(COMPILE.c)  -o $@ $<
 459         $(POST_PROCESS_O)
 460 
 461 objs/%.o pics/%.o: $(REL_PATH)/krb5/krb/%.c
 462         $(COMPILE.c)  -o $@ $<
 463         $(POST_PROCESS_O)
 464 
 465 objs/%.o pics/%.o: $(SRC)/uts/common/gssapi/mechs/krb5/krb5/os/%.c
 466         $(COMPILE.c)  -o $@ $<
 467         $(POST_PROCESS_O)
 468 
 469 objs/%.o pics/%.o: $(REL_PATH)/krb5/os/%.c
 470         $(COMPILE.c)  -o $@ $<
 471         $(POST_PROCESS_O)
 472 
 473 objs/%.o pics/%.o: $(REL_PATH)/krb5/posix/%.c
 474         $(COMPILE.c)  -o $@ $<
 475         $(POST_PROCESS_O)
 476 
 477 objs/%.o pics/%.o: $(REL_PATH)/krb5/rcache/%.c
 478         $(COMPILE.c)  -o $@ $<
 479         $(POST_PROCESS_O)
 480 
 481 objs/%.o pics/%.o: $(REL_PATH)/profile/%.c
 482         $(COMPILE.c)  -o $@ $<
 483         $(POST_PROCESS_O)
 484 
 485 objs/%.o pics/%.o: $(REL_PATH)/support/%.c
 486         $(COMPILE.c)  -o $@ $<
 487         $(POST_PROCESS_O)
 488 
 489 # include library targets
 490 include $(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 
 494 OS_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 
 508 CPPFLAGS += -I$(REL_PATH)krb5/ccache/file $(OS_FLAGS)
 509 
 510 SOURCES= \
 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 
 550 kwarnd.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 
 555 kwarnd_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 
 560 kwarnd_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 
 565 kwarnd_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 
 569 kwarnd_handle.c: $(SRC)/cmd/krb5/kwarn/kwarnd_handle.c
 570         $(RM) $@
 571         $(CP) $(SRC)/cmd/krb5/kwarn/kwarnd_handle.c $@
 572 
 573 CLOBBERFILES += 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
 577 lint: $(LINTOUT)
 578 
 579 $(LINTOUT): $(SOURCES)
 580         $(LINT.c) -o $(LIBNAME) $(SOURCES) > $(LINTOUT) 2>&1
 581