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# Copyright 2015 Gary Mills 23# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24# Use is subject to license terms. 25# Copyright 2020 Joyent, Inc. 26# 27 28BINPROG = ypmatch ypwhich ypcat 29SBINPROG = makedbm ypalias ypinit yppoll ypset 30NETYPPROG = ypbind ypxfr yppush udpublickey mkalias \ 31 multi multi.awk stdethers stdhosts \ 32 ypxfr_1perday ypxfr_1perhour ypxfr_2perday \ 33 ypstart ypstop 34NIS2LDAPPROG = ypxfrd ypserv ypxfr 35SVCMETHOD = yp 36PROG= $(BINPROG) $(SBINPROG) $(NETYPPROG) $(NIS2LDAPPROG) $(SVCMETHOD) 37 38MANIFEST = server.xml client.xml xfr.xml 39 40# These only need -lnsl 41LNSLPROG = ypmatch ypwhich ypcat yppoll ypset \ 42 ypbind ypxfr yppush mkalias stdhosts 43 44include ../Makefile.cmd 45 46ROOTMANIFESTDIR = $(ROOTSVCNETWORKNIS) 47 48# installed directories 49NETSVC = $(ROOTLIB)/netsvc 50NETYP = $(NETSVC)/yp 51 52ROOTVAR_YP = $(ROOT)/var/yp 53ROOTBINDING = $(ROOTVAR_YP)/binding 54ROOTDIRS = $(ROOT) $(ROOTUSR) $(ROOTLIB) $(ROOTETC) $(ROOTVAR) \ 55 $(NETSVC) $(NETYP) $(ROOTVAR_YP) $(ROOTBINDING) \ 56 $(ROOTUSRSBIN) $(ROOTBIN) 57 58$(LNSLPROG) := LDLIBS += -lnsl 59$(NIS2LDAPPROG) := LDLIBS += -lc -lnsl -lnisdb 60stdethers := LDLIBS += -lsocket 61makedbm := MAPFILES = $(MAPFILE.INT) $(MAPFILE.NGB) 62makedbm := LDFLAGS += $(MAPFILES:%=-Wl,-M%) 63 64$(ROOTVAR_YP)/aliases := FILEMODE=555 65 66YPFILES = Makefile aliases nicknames updaters 67ETCFILES = publickey 68ROOTYPFILES= $(YPFILES:%=$(ROOTVAR_YP)/%) 69ROOTETCFILE= $(ETCFILES:%=$(ROOTETC)/%) 70 71TXTS= $(ETCFILES:%=net_files/%) $(YPFILES:%=net_files/%) 72SUBDIRS = yppasswd mknetid revnetgroup ypupdated yp2lscripts 73 74YPBINDOBJ= yp_b_svc.o yp_b_subr.o rpc_bootstrap.o getlist.o 75# 76# Some sort of obsolete idea of common files which are only now used by a 77# few minor utilities 78# 79COMMONOBJ= getlist.o yp_getalias.o 80 81# 82# Objects shared between all the major components 83# 84SHARED_DIR= ./shared 85SHAREDOBJ= $(SHARED_DIR)/utils.o $(SHARED_DIR)/lockmap.o $(SHARED_DIR)/ancil.o 86SHARESRC = $(SHAREOBJ:.o=.c) 87 88YPXFROBJ = ypxfr.o ypxfrd_client.o ypxfrd_xdr.o 89YPMATOBJ = ypmatch.o nick.o 90YPWHIOBJ = ypwhich.o nick.o 91YPCATOBJ = ypcat.o nick.o 92UDPUBLICKEYOBJ = udpublickey.o 93MKALIASOBJ = mkalias.o 94STDETHERSOBJ = stdethers.o 95STDHOSTSOBJ = stdhosts.o 96#COMMONCLNTOBJ = clnt_create_rsvd.o 97YPSERVOBJ = ypserv.o ypserv_map.o \ 98 ypserv_proc.o ypserv_ancil.o \ 99 ypserv_resolv.o ypserv_resolv_common.o \ 100 ypv1_xdr.o ypserv_net_secure.o 101YPPUSHOBJ = yppush.o 102YPXFRDOBJ = ypxfrd_svc.o ypxfrd_xdr.o ypxfrd_server.o \ 103 ypserv_net_secure.o 104 105NETYPOBJ = $(YPXFROBJ) $(YPXFRDOBJ) $(YPSERVOBJ) $(YPPUSHOBJ) \ 106 $(YPBINDOBJ) $(UDPUBLICKEYOBJ) 107OBJS = $(NETYPOBJ) $(MKALIASOBJ) $(COMMONOBJ) $(SHAREDOBJ) \ 108 $(YPPUSHOBJ) $(YPMATOBJ) $(YPWHIOBJ) $(YPCATOBJ) \ 109 $(STDETHERSOBJ) $(STDHOSTSOBJ) makedbm.o ypalias.o pong.o 110 111BINSRC = $(BINPROG:=.c) 112 113SBINSRC = $(SBINPROG:=.c) 114 115NETYPSRC = $(NETYPOBJ:.o=.c) 116 117YPBINDSRC = $(YPBINSOBJ:.o=.c) 118 119YPXFRSRC = $(YPXFROBJ:.o=.c) 120 121YPSERVSRC = $(YPSERVOBJ:.o=.c) 122 123YPPUSHSRC = $(YPPUSHOBJ:.o=.c) 124 125YPXFRDSRC = $(YPXFRDOBJ:.o=.c) 126 127YPMASTERSRC = $(YPMASTEROBJ:.o=.c) 128 129YPALLSRC = $(YPALLOBJ:.o=.c) 130 131COMMONSRC = $(COMMONOBJ:.o=.c) 132 133#COMMONCLNTSRC = $(COMMONCLNTOBJ:.o=.c) 134 135SRCS = $(BINSRC) $(SBINSRC) $(NETYPSRC) \ 136 $(COMMONSRC) $(SHAREDSRC) 137 138CLEANFILES = ypxfrd.h ypxfrd_xdr.c 139 140IBINPROG= $(BINPROG:%=$(ROOTBIN)/%) 141ISBINPROG= $(SBINPROG:%=$(ROOTUSRSBIN)/%) 142INETYPPROG= $(NETYPPROG:%=$(NETYP)/%) 143INIS2LDAPPROG = $(NIS2LDAPPROG:%=$(NETYP)/%) 144 145NIS2LDAPINC = -I$(SRC)/lib/libnisdb/yptol 146 147CERRWARN += -_gcc=-Wno-implicit-function-declaration 148CERRWARN += -_gcc=-Wno-parentheses 149CERRWARN += -_gcc=-Wno-unused-variable 150CERRWARN += -_gcc=-Wno-switch 151CERRWARN += -_gcc=-Wno-extra 152CERRWARN += -_gcc=-Wno-unused-label 153CERRWARN += -_gcc=-Wno-address 154CERRWARN += -_gcc=-Wno-unused-function 155 156# too many unknown types 157SMATCH = off 158 159ZGUIDANCE = -Wl,-zguidance=nounused 160 161#conditional assignments 162ypalias.o := CPPFLAGS= -DMAIN $(CPPFLAGS.master) 163makedbm.o := CPPFLAGS= $(CPPFLAGS.master) 164yp_b_svc.o := CPPFLAGS += -DINIT_DEFAULT 165ypxfrd_svc.o := CPPFLAGS += -Dmain=_main 166ypxfr.o := CPPFLAGS += $(NIS2LDAPINC) 167yppush.o := CPPFLAGS += $(NIS2LDAPINC) 168$(NIS2LDAPPROG) := CPPFLAGS += $(NIS2LDAPINC) 169$(SHAREDOBJ) := CPPFLAGS += -I$(SRC)/lib/libnisdb/yptol 170$(ROOTVAR_YP)/Makefile := FILEMODE= 555 171$(ROOTVAR_YP)/nicknames := FILEMODE= 644 172$(ROOTVAR_YP)/updaters := FILEMODE= 500 173$(ROOTETC)/publickey := FILEMODE= 644 174# non-default file attributes to avoid conflict with rpcsrc 175NETYP = $(NETSVC)/yp 176 177 178all:= TARGET= all 179install:= TARGET= install 180clean:= TARGET= clean 181clobber:= TARGET= clobber 182 183all: $(SHAREDOBJ) $(SUBDIRS) $(PROG) $(TXTS) 184 185# install rules 186$(ROOTVAR_YP)/% \ 187$(ROOTETC)/%: net_files/% 188 $(INS.file) 189 190$(ROOTVAR_YP)/% : net_files/% 191 $(INS.file) 192 193$(NETYP)/%: % 194 $(INS.file) 195 196.KEEP_STATE: 197 198$(SHAREDOBJ): $(SHAREDSRC) 199 $(COMPILE.c) $(SHAREDSRC) -o $@ $< 200 201ypbind: $(YPBINDOBJ) 202 $(LINK.c) $(YPBINDOBJ) -o $@ $(LDLIBS) 203 $(POST_PROCESS) 204 205makedbm ypalias: $$@.o $(COMMONOBJ) $$(MAPFILES) 206 $(LINK.c) -o $@ $@.o $(COMMONOBJ) $(LDLIBS) 207 $(POST_PROCESS) 208 209ypmatch: $(YPMATOBJ) 210 $(LINK.c) -o $@ $(YPMATOBJ) $(LDLIBS) 211 $(POST_PROCESS) 212 213ypwhich: $(YPWHIOBJ) 214 $(LINK.c) -o $@ $(YPWHIOBJ) $(LDLIBS) 215 $(POST_PROCESS) 216 217ypcat: $(YPCATOBJ) 218 $(LINK.c) -o $@ $(YPCATOBJ) $(LDLIBS) 219 $(POST_PROCESS) 220 221ypxfrd_xdr.c: ypxfrd.x 222 $(RM) ypxfrd_xdr.c; $(RPCGEN) -C -c ypxfrd.x -o ypxfrd_xdr.c 223 224ypxfrd.h: ypxfrd.x 225 $(RM) ypxfrd.h; $(RPCGEN) -C -h ypxfrd.x -o ypxfrd.h 226 227ypxfrd_xdr.o ypxfrd_client.o: ypxfrd.h 228 229#clnt_create_rsvd.o ypxfr.o: clnt_create_rsvd.h 230 231ypxfrd: $(YPXFRDOBJ) $(SHAREDOBJ) 232 $(LINK.cc) $(YPXFRDOBJ) $(SHAREDOBJ) \ 233 -o $@ $(LDLIBS) -lc 234 $(POST_PROCESS) 235 236ypxfr: $(YPXFROBJ) $(COMMONOBJ) $(YPMASTEROBJ) $(SHAREDOBJ) 237 $(LINK.cc) -o $@ $(YPXFROBJ) $(YPMASTEROBJ) $(COMMONOBJ) \ 238 $(SHAREDOBJ) $(LDLIBS) 239 $(POST_PROCESS) 240 241ypserv: $(YPSERVOBJ) $(COMMONOBJ) $(SHAREDOBJ) 242 $(LINK.cc) $(YPSERVOBJ) $(COMMONOBJ) \ 243 $(SHAREDOBJ) -o $@ $(LDLIBS) 244 $(POST_PROCESS) 245 246yppush: $(YPPUSHOBJ) $(COMMONOBJ) 247 $(LINK.c) $(YPPUSHOBJ) $(COMMONOBJ) -o $@ $(LDLIBS) 248 $(POST_PROCESS) 249 250udpublickey: $(UDPUBLICKEYOBJ) 251 $(LINK.c) $(UDPUBLICKEYOBJ) -o $@ $(LDLIBS) 252 $(POST_PROCESS) 253 254mkalias: $(MKALIASOBJ) 255 $(LINK.c) $(MKALIASOBJ) -o $@ $(LDLIBS) 256 $(POST_PROCESS) 257 258stdethers: $(STDETHERSOBJ) 259 $(LINK.c) $(STDETHERSOBJ) -o $@ $(LDLIBS) 260 $(POST_PROCESS) 261 262stdhosts: $(STDHOSTSOBJ) 263 $(LINK.c) $(STDHOSTSOBJ) -o $@ $(LDLIBS) 264 $(POST_PROCESS) 265 266install: all $(PROG) $(ROOTDIRS) $(ROOTETCFILE) $(ROOTYPFILES) $(IBINPROG) \ 267 $(ISBINPROG) $(INETYPPROG) $(INIS2LDAPPROG) $(SUBDIRS) $(ROOTMANIFEST) \ 268 $(ROOTSVCMETHOD) 269 270$(ROOTDIRS): 271 $(INS.dir) 272 273$(SUBDIRS): FRC 274 @cd $@; pwd; $(MAKE) $(TARGET) 275 276check: $(CHKMANIFEST) 277 278clean: $(SUBDIRS) 279 $(RM) $(OBJS) $(CLEANFILES) 280 281clobber: clean $(SUBDIRS) 282 283FRC: 284 285include ../Makefile.targ 286