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