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