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