xref: /illumos-gate/usr/src/cmd/rpcsvc/Makefile (revision 24da5b34f49324ed742a340010ed5bd3d4e06625)
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 2006 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25# ident	"%Z%%M%	%I%	%E% SMI"
26#
27# cmd/rpcsvc/Makefile
28
29PROTOCOL_DIR= $(ROOT)/usr/include/rpcsvc
30
31BINPROG= rusers rup
32SBINPROG= rwall spray
33RPROG= rpc.rusersd
34SPROG= rpc.sprayd
35WPROG= rpc.rwalld
36TPROG= rpc.rstatd
37
38PROG= $(BINPROG) $(SBINPROG) $(RPROG) $(SPROG) $(WPROG) $(TPROG)
39
40MANIFEST= \
41	nisplus.xml \
42	rusers.xml \
43	spray.xml \
44	wall.xml \
45	rstat.xml
46
47SVCMETHOD= \
48	nisplus
49
50SCLNTOBJS= spray.o spray_clnt.o
51SSVCOBJS= spray_subr.o spray_svc.o
52WCLNTOBJS = rwall.o rwall_clnt.o
53WSVCOBJS= rwall_subr.o rwall_svc.o
54TSVCOBJS= rstat_main.o rstat_proc.o rstat_svc.o rstat_v2_svc.o rstat_v2_xdr.o
55
56DERIVED_FILES = rstat.x rstat.h rstat_svc.c rstat_v2.h rstat_v2_svc.c \
57		rstat_v2_xdr.c spray.x spray.h spray_clnt.c spray_svc.c \
58		rwall.x rwall.h rwall_svc.c rwall_clnt.c
59
60include ../Makefile.cmd
61
62ROOTMANIFESTDIR=	$(ROOTSVCNETWORKRPC)
63
64CPPFLAGS= -I. $(CPPFLAGS.master)
65LDLIBS += -lnsl
66rusers :=	CFLAGS += -v
67$(BINPROG) :=	LDLIBS += -lrpcsvc
68$(RPROG) :=	LDLIBS += -lrpcsvc
69$(SPROG) :=	LDLIBS += -lrpcsvc
70$(TPROG) :=	LDLIBS += -lrpcsvc
71spray :=	LDLIBS += -lrpcsvc
72
73CP=	cp
74
75SUBDIRS= rpc.bootparamd nis/utils nis/bin nis/cachemgr nis/rpc.nisd \
76	 nis/rpc.nispasswdd
77OBJS= $(SCLNTOBJS) $(SSVCOBJS) $(WCLNTOBJS) $(WSVCOBJS) $(TSVCOBJS)
78SRCS= $(OBJS:%.o=%.c) rusers.c rpc.rusersd.c rup.c
79
80ETCFILES= rpc
81
82TXTS= $(ETCFILES:%=net_files/%)
83
84NETSVC=	$(ROOTLIB)/netsvc
85NIS = $(NETSVC)/nis
86RWALL= $(NETSVC)/rwall
87RUSERS= $(NETSVC)/rusers
88SPRAY= $(NETSVC)/spray
89RSTAT= $(NETSVC)/rstat
90ROOTVAR_NIS= $(ROOT)/var/nis
91
92ROOTDIRS= \
93		$(NETSVC) \
94		$(NIS) \
95		$(RWALL) \
96		$(RUSERS) \
97		$(SPRAY) \
98		$(RSTAT) \
99		$(ROOTVAR_NIS)
100
101IBINPROG=		$(BINPROG:%=$(ROOTBIN)/%)
102ISBINPROG=		$(SBINPROG:%=$(ROOTUSRSBIN)/%)
103IWPROG=			$(WPROG:%=$(RWALL)/%)
104ISPROG=			$(SPROG:%=$(SPRAY)/%)
105IRPROG=			$(RPROG:%=$(RUSERS)/%)
106ITPROG=			$(TPROG:%=$(RSTAT)/%)
107IETCFILES=		$(ETCFILES:%=$(ROOTETC)/%)
108
109# non-default file attributes
110$(ROOTDIRS) :=					OWNER=		root
111$(ROOTDIRS) :=					GROUP=		sys
112
113$(ROOTETC)/rpc :=				FILEMODE=	0644
114$(ROOTETC)/rpc :=				OWNER=		root
115$(ROOTETC)/rpc :=				GROUP=		sys
116
117all:=		TARGET= all
118install:=	TARGET= install
119clean:=		TARGET= clean
120clobber:=	TARGET= clobber
121lint:=		TARGET= lint
122
123rpc.rstatd:=	LDLIBS += -lkstat
124rwall:=		CPPFLAGS += -D_REENTRANT
125rpc.rwalld:=	CPPFLAGS += -D_REENTRANT
126
127# install rules
128
129$(RWALL)/% $(SPRAY)/% $(RUSERS)/% $(RSTAT)/%: %
130	$(INS.file)
131
132$(ROOTETC)/%: ./net_files/%
133	$(INS.file)
134
135.KEEP_STATE:
136
137all: $(PROG) $(TXTS) $(SUBDIRS)
138
139# multi-object targets
140#
141spray:	$(SCLNTOBJS)
142	$(LINK.c) $(SCLNTOBJS) -o $@ $(LDLIBS)
143	$(POST_PROCESS)
144
145spray_svc.o spray_clnt.o: spray.h
146
147rpc.sprayd: $(SSVCOBJS)
148	$(LINK.c) $(SSVCOBJS) -o $@ $(LDLIBS)
149	$(POST_PROCESS)
150
151rwall_svc.o rwall_clnt.o: rwall.h
152
153rwall: $(WCLNTOBJS)
154	$(LINK.c) $(WCLNTOBJS) -o $@ $(LDLIBS)
155	$(POST_PROCESS)
156
157rpc.rwalld: $(WSVCOBJS)
158	$(LINK.c) $(WSVCOBJS) -o $@ $(LDLIBS)
159	$(POST_PROCESS)
160
161rstat_main.o:	rstat.h rstat_v2.h
162
163rstat_svc.o: rstat.h
164
165rstat_V2_svc.o rstat_V2_xdr.o: rstat_v2.h
166
167rpc.rstatd: $(TSVCOBJS)
168	$(LINK.c) $(TSVCOBJS) -o $@ $(LDLIBS)
169	$(POST_PROCESS)
170
171install: $(PROG) $(TXTS) .WAIT $(ROOTDIRS) .WAIT $(IBINPROG) $(ISBINPROG) \
172	$(IWPROG) $(ISPROG) $(IRPROG) $(ITPROG) $(IETCFILES) $(SUBDIRS) \
173	$(ROOTMANIFEST) $(ROOTSVCMETHOD)
174
175$(ROOTDIRS):
176	$(INS.dir)
177
178$(SUBDIRS): FRC
179	@cd $@; pwd; $(MAKE) $(TARGET)
180
181#
182# Derived files
183#
184
185rstat.x: $(PROTOCOL_DIR)/rstat.x
186	$(RM) rstat.x
187	$(CP) $(PROTOCOL_DIR)/rstat.x rstat.x
188
189rstat.h: $(PROTOCOL_DIR)/rstat.h
190	$(RM) rstat.h
191	$(CP) $(PROTOCOL_DIR)/rstat.h rstat.h
192
193rstat_svc.c: rstat.x
194	$(RPCGEN) -C -m rstat.x > $@
195
196rstat_v2.h: rstat_v2.x
197	$(RPCGEN) -C -h rstat_v2.x > $@
198
199rstat_v2_svc.c: rstat_v2.x
200	$(RPCGEN) -C -m rstat_v2.x > $@
201
202rstat_v2_xdr.c: rstat_v2.x
203	$(RPCGEN) -c rstat_v2.x > $@
204
205spray.x: $(PROTOCOL_DIR)/spray.x
206	$(RM) spray.x
207	$(CP) $(PROTOCOL_DIR)/spray.x spray.x
208
209spray.h: $(PROTOCOL_DIR)/spray.h
210	$(RM) spray.h
211	$(CP) $(PROTOCOL_DIR)/spray.h spray.h
212
213spray_svc.c: spray.x
214	$(RPCGEN) -s datagram_v -s circuit_v spray.x > $@
215
216spray_clnt.c: spray.x
217	$(RPCGEN) -l spray.x > $@
218
219rwall.x: $(PROTOCOL_DIR)/rwall.x
220	$(RM) rwall.x
221	$(CP) $(PROTOCOL_DIR)/rwall.x rwall.x
222
223rwall.h: $(PROTOCOL_DIR)/rwall.h
224	$(RM) rwall.h
225	$(CP) $(PROTOCOL_DIR)/rwall.h rwall.h
226
227rwall_svc.c: rwall.x
228	$(RPCGEN) -A -s datagram_v rwall.x > $@
229
230rwall_clnt.c: rwall.x
231	$(RPCGEN) -l -M rwall.x > $@
232
233check:	$(CHKMANIFEST)
234
235clean: $(SUBDIRS)
236	-$(RM) $(OBJS) $(DERIVED_FILES)
237
238clobber: $(SUBDIRS)
239
240lint:
241	$(LINT.c) $(WCLNTOBJS:%.o=%.c) -lnsl -lrpcsvc
242	$(LINT.c) $(WSVCOBJS:%.o=%.c) -lnsl -lrpcsvc
243	$(LINT.c) rusers.c -lnsl -lrpcsvc
244
245FRC:
246
247include ../Makefile.targ
248