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