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