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