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