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 
  22 #
  23 # Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
  24 # Copyright 2018 Nexenta Systems, Inc. All rights reserved.
  25 # Copyright (c) 2018, Joyent, Inc.
  26 #
  27 
  28 LIBRARY= libnsl.a
  29 VERS=   .1
  30 
  31 # objects are listed by source directory
  32 
  33 # common utility code used in more than one directory
  34 COMMON=         common.o daemon_utils.o
  35 
  36 DES=            des_crypt.o des_soft.o
  37 
  38 DIAL=           dial.o
  39 
  40 IPSEC=          algs.o
  41 
  42 NETDIR=         netdir.o
  43 
  44 NSS= \
  45 gethostbyname_r.o gethostent.o gethostent_r.o gethostent6.o gethostby_door.o \
  46 getipnodeby_door.o getipnodeby.o getrpcent.o  getrpcent_r.o inet_matchaddr.o \
  47 netdir_inet.o netdir_inet_sundry.o \
  48 parse.o getauthattr.o getprofattr.o getexecattr.o getuserattr.o getauuser.o
  49 
  50 NETSELECT= netselect.o
  51 
  52 NSL=  \
  53 _conn_util.o    _data2.o        _errlst.o \
  54 _utility.o      t_accept.o      t_alloc.o       t_bind.o        t_close.o \
  55 t_connect.o     t_error.o       t_free.o        t_getinfo.o     t_getname.o \
  56 t_getstate.o    t_listen.o      t_look.o        t_open.o        t_optmgmt.o \
  57 t_rcv.o         t_rcvconnect.o  t_rcvdis.o      t_rcvrel.o      t_rcvudata.o \
  58 t_rcvuderr.o    t_snd.o         t_snddis.o      t_sndrel.o      t_sndudata.o \
  59 t_sndv.o        t_sndreldata.o  t_rcvv.o        t_rcvreldata.o  t_sysconf.o \
  60 t_sndvudata.o   t_rcvvudata.o   t_sync.o        t_unbind.o      t_strerror.o \
  61 xti_wrappers.o
  62 
  63 WRAPPERS= \
  64 tli_wrappers.o
  65 
  66 RPC= \
  67 auth_des.o      auth_none.o     auth_sys.o      auth_time.o     authdes_prot.o \
  68 authsys_prot.o  can_use_af.o \
  69 clnt_bcast.o    clnt_dg.o       clnt_door.o     clnt_generic.o  clnt_perror.o \
  70 clnt_raw.o      clnt_simple.o   clnt_vc.o       fdsync.o        getdname.o \
  71 key_call.o      key_prot.o      mt_misc.o \
  72 netname.o       netnamer.o      pmap_clnt.o     pmap_prot.o \
  73 rpc_callmsg.o   rpc_comdata.o   rpc_generic.o   rpc_prot.o rpc_sel2poll.o \
  74 rpc_soc.o       rpc_td.o        rpcb_clnt.o     rpcb_prot.o \
  75 rpcb_st_xdr.o   rpcdname.o      rpcsec_gss_if.o rtime_tli.o     svc.o \
  76 svc_auth.o      svc_auth_loopb.o        svc_auth_sys.o  svc_dg.o \
  77 svc_door.o      svc_generic.o   svc_raw.o       svc_run.o       svc_simple.o \
  78 svc_vc.o        svcauth_des.o   svid_funcs.o    ti_opts.o       xdr.o \
  79 xdr_array.o     xdr_float.o     xdr_mem.o       xdr_rec.o       xdr_refer.o \
  80 xdr_sizeof.o    xdr_stdio.o
  81 
  82 SAF= checkver.o  doconfig.o
  83 
  84 YP=  \
  85 dbm.o           yp_all.o        yp_b_clnt.o     yp_b_xdr.o      yp_bind.o  \
  86 yp_enum.o       yp_master.o     yp_match.o      yp_order.o      yp_update.o \
  87 yperr_string.o  yp_xdr.o        ypprot_err.o    ypupd.o \
  88 yp_rsvd.o \
  89 yppasswd_xdr.o
  90 
  91 NIS_GEN=  \
  92 nis_xdr.o      nis_subr.o       nis_misc.o         \
  93 nis_misc_proc.o  nis_sec_mechs.o
  94 
  95 
  96 NIS= $(NIS_GEN)
  97 
  98 KEY= publickey.o xcrypt.o gen_dhkeys.o
  99 
 100 OBJECTS= $(COMMON) $(DES) $(DIAL) $(IPSEC) $(NETDIR) $(NSS) $(NETSELECT) \
 101          $(NSL) $(WRAPPERS) $(RPC) $(SAF) $(YP) $(NIS) $(KEY)
 102 
 103 # libnsl build rules
 104 pics/%.o: ../common/%.c
 105         $(COMPILE.c)  -o $@ $<
 106         $(POST_PROCESS_O)
 107 
 108 pics/%.o: ../des/%.c
 109         $(COMPILE.c)  -o $@ $<
 110         $(POST_PROCESS_O)
 111 
 112 pics/%.o: ../dial/%.c
 113         $(COMPILE.c)  -o $@ $<
 114         $(POST_PROCESS_O)
 115 
 116 pics/%.o: ../ipsec/%.c
 117         $(COMPILE.c)  -o $@ $<
 118         $(POST_PROCESS_O)
 119 
 120 pics/%.o: ../netdir/%.c
 121         $(COMPILE.c)  -o $@ $<
 122         $(POST_PROCESS_O)
 123 
 124 pics/%.o: ../nss/%.c
 125         $(COMPILE.c)  -o $@ $<
 126         $(POST_PROCESS_O)
 127 
 128 pics/%.o: ../netselect/%.c
 129         $(COMPILE.c)  -o $@ $<
 130         $(POST_PROCESS_O)
 131 
 132 pics/%.o: ../nsl/%.c
 133         $(COMPILE.c)  -o $@ $<
 134         $(POST_PROCESS_O)
 135 
 136 pics/%.o: ../rpc/%.c
 137         $(COMPILE.c) -DPORTMAP -DNIS  -o $@ $<
 138         $(POST_PROCESS_O)
 139 
 140 pics/%.o: ../saf/%.c
 141         $(COMPILE.c)  -o $@ $<
 142         $(POST_PROCESS_O)
 143 
 144 pics/%.o: ../yp/%.c
 145         $(COMPILE.c)   -o $@ $<
 146         $(POST_PROCESS_O)
 147 
 148 pics/%.o: ../key/%.c
 149         $(COMPILE.c)   -o $@ $<
 150         $(POST_PROCESS_O)
 151 
 152 pics/%.o: ../nis/gen/%.c ../nis/gen/nis_clnt.h
 153         $(COMPILE.c) -o $@ $<
 154         $(POST_PROCESS_O)
 155 
 156 
 157 pics/%.o: ../nis/gen/nis_clnt.h
 158         $(COMPILE.cc) -o $@ $<
 159         $(POST_PROCESS_O)
 160 
 161 # include library definitions
 162 include ../../Makefile.lib
 163 
 164 # install this library in the root filesystem
 165 include ../../Makefile.rootfs
 166 
 167 LIBS =          $(DYNLIB) $(LINTLIB)
 168 
 169 SRCDIR=         ../common
 170 
 171 # Override the position-independent code generation flags.
 172 #
 173 # These files are particularly rich with references to global things.
 174 # Ordering is by number of got references per file of files that have
 175 # non-performance sensitive code in them.
 176 #
 177 # If you need to add more files and the GOT overflows with "pic" items,
 178 # then use the environment variable LD_OPTIONS=-Dgot,detail to have the
 179 # linker print out the list of GOT hogs..
 180 
 181 GOTHOGS =       dial.o print_obj.o clnt_perror.o nsl_stdio_prv.o netdir.o \
 182                 algs.o netselect.o
 183 BIGPICS =       $(GOTHOGS:%=pics/%)
 184 $(BIGPICS) :=   sparc_C_PICFLAGS = $(C_BIGPICFLAGS)
 185 $(BIGPICS) :=   i386_C_PICFLAGS = $(C_BIGPICFLAGS)
 186 
 187 CPPFLAGS +=     -I$(SRC)/lib/libnsl/include -D_REENTRANT
 188 CPPFLAGS +=     -I$(SRC)/lib/libnsl/dial
 189 
 190 CFLAGS +=       $(CCVERBOSE)
 191 
 192 # Make string literals read-only to save memory.
 193 CFLAGS +=       $(XSTRCONST)
 194 CFLAGS64 +=     $(XSTRCONST)
 195 CCFLAGS +=      -_CC=-features=conststrings
 196 CCFLAGS64 +=    -_CC=-features=conststrings
 197 
 198 CERRWARN +=     -_gcc=-Wno-char-subscripts
 199 CERRWARN +=     -_gcc=-Wno-parentheses
 200 CERRWARN +=     $(CNOWARN_UNINIT)
 201 CERRWARN +=     -_gcc=-Wno-switch
 202 CERRWARN +=     -_gcc=-Wno-char-subscripts
 203 CERRWARN +=     -_gcc=-Wno-empty-body
 204 CERRWARN +=     -_gcc=-Wno-unused-variable
 205 CERRWARN +=     -_gcc=-Wno-clobbered
 206 
 207 # not linted
 208 SMATCH=off
 209 
 210 LIBMP =         -lmp
 211 lint :=         LIBMP =
 212 LDLIBS +=       $(LIBMP) -lmd -lc
 213 DYNFLAGS +=     $(ZNODELETE)
 214 
 215 $(LINTLIB):=    SRCS=$(SRCDIR)/$(LINTSRC)
 216 LINTFLAGS +=    -m -DPORTMAP
 217 LINTFLAGS64 +=  -m -DPORTMAP
 218 
 219 .KEEP_STATE:
 220 
 221 all: $(LIBS)
 222 
 223 # Don't lint WRAPPERS as they are explicitly unclean
 224 SRCS=   $(DES:%.o=../des/%.c)                   \
 225         $(DIAL:%.o=../dial/%.c)                 \
 226         $(IPSEC:%.o=../ipsec/%.c)               \
 227         $(NETDIR:%.o=../netdir/%.c)             \
 228         $(NSS:%.o=../nss/%.c)                   \
 229         $(NETSELECT:%.o=../netselect/%.c)       \
 230         $(NSL:%.o=../nsl/%.c)                   \
 231         $(RPC:%.o=../rpc/%.c)                   \
 232         $(SAF:%.o=../saf/%.c)                   \
 233         $(YP:%.o=../yp/%.c)                     \
 234         $(NIS_GEN:%.o=../nis/gen/%.c)           \
 235         $(COMMON:%.o=../common/%.c)
 236 
 237 lint:
 238         @$(LINT.c) $(SRCS) $(LDLIBS)
 239 
 240 # include library targets
 241 include ../../Makefile.targ