Makefile.yp revision 1.2
1#	$NetBSD: Makefile.yp,v 1.2 1996/08/09 20:58:36 thorpej Exp $
2#
3# This is the YP Makefile, used to create and push YP maps.
4#
5
6YPDBDIR=/var/yp
7DIR=/etc
8NOPUSH=""
9
10AWK=/usr/bin/awk
11CAT=/bin/cat
12CUT=/usr/bin/cut
13ECHO=/bin/echo
14MAKEDBM=/usr/sbin/makedbm
15SED=/usr/bin/sed
16STDHOSTS=/usr/sbin/stdhosts
17STDETHERS=/usr/sbin/stdethers
18MKNETID=/usr/sbin/mknetid
19TOUCH=/usr/bin/touch
20DOMAIN="`/usr/bin/basename ${.CURDIR}`"
21YPPUSH=/usr/sbin/yppush
22
23# We have a rule for ypservers, but we don't build it by default, since
24# it seldom changes (only when slaves are added/deleted).
25
26all: passwd group hosts ethers networks rpc services protocols netid
27
28passwd.time: $(DIR)/master.passwd
29	-@if [ -f $(>) ]; then \
30		$(CAT) $(>) | $(CUT) -d: -f1-4,8-10 | \
31		$(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
32		{ print $$1, $$0 }' - | $(MAKEDBM) - passwd.byname; \
33		$(CAT) $(>) | $(CUT) -d: -f1-4,8-10 |\
34		$(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
35		{ print $$3, $$0 }' - | $(MAKEDBM) - passwd.byuid; \
36		$(TOUCH) $(@); \
37		$(ECHO) "updated passwd"; \
38		if [ ! $(NOPUSH) ]; then \
39			$(YPPUSH) -d $(DOMAIN) passwd.byname; \
40			$(YPPUSH) -d $(DOMAIN) passwd.byuid; \
41			$(ECHO) "pushed passwd"; \
42		else \
43			: ; \
44		fi \
45	else \
46		$(ECHO) "couldn't find $(>)"; \
47	fi
48
49
50group.time: $(DIR)/group
51	-@if [ -f $(>) ]; then \
52		$(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
53		{ print $$1, $$0 }' $(>) | \
54		$(MAKEDBM) - group.byname; \
55		$(AWK) 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \
56		{ print $$3, $$0 }' $(>) | \
57		$(MAKEDBM) - group.bygid; \
58		$(TOUCH) $(@); \
59		$(ECHO) "updated group"; \
60		if [ ! $(NOPUSH) ]; then \
61			$(YPPUSH) -d $(DOMAIN) group.byname; \
62			$(YPPUSH) -d $(DOMAIN) group.bygid; \
63			$(ECHO) "pushed group"; \
64		else \
65			: ; \
66		fi \
67	else \
68		$(ECHO) "couldn't find $(>)"; \
69	fi
70
71hosts.time: $(DIR)/hosts
72	-@if [ -f $(DIR)/hosts ]; then \
73		$(STDHOSTS) $(>) | $(SED) -e s/#.*$$// | \
74		$(AWK) '{for (i = 2; i <= NF; i++) print $$i, $$0 }' | \
75		$(MAKEDBM) - hosts.byname; \
76		$(STDHOSTS) $(>) | \
77		$(AWK) 'BEGIN { OFS="\t"; } { print $$1, $$0 }' | \
78		$(MAKEDBM) - hosts.byaddr; \
79		$(TOUCH) $(@); \
80		$(ECHO) "updated hosts"; \
81		if [ ! $(NOPUSH) ]; then \
82			$(YPPUSH) -d $(DOMAIN) hosts.byname; \
83			$(YPPUSH) -d $(DOMAIN) hosts.byaddr; \
84			$(ECHO) "pushed hosts"; \
85		else \
86			: ; \
87		fi \
88	else \
89		$(ECHO) "couldn't find $(>)"; \
90	fi
91
92ethers.time: $(DIR)/ethers
93	-@if [ -f $(DIR)/ethers ]; then \
94		$(STDETHERS) $(>) | $(SED) -e s/#.*$$// | \
95		$(AWK) 'BEGIN { FS="\t"; OFS="\t"; } { print $$1, $$0 }' | \
96		$(MAKEDBM) - ethers.byaddr; \
97		$(STDETHERS) $(>) | \
98		$(AWK) 'BEGIN { FS="\t"; OFS="\t"; } { print $$2, $$0 }' | \
99		$(MAKEDBM) - ethers.byname; \
100		$(TOUCH) $(@); \
101		$(ECHO) "updated ethers"; \
102		if [ ! $(NOPUSH) ]; then \
103			$(YPPUSH) -d $(DOMAIN) ethers.byaddr; \
104			$(YPPUSH) -d $(DOMAIN) ethers.byname; \
105			$(ECHO) "pushed hosts"; \
106		else \
107			: ; \
108		fi \
109	else \
110		$(ECHO) "couldn't find $(>)"; \
111	fi
112
113networks.time: $(DIR)/networks
114	-@if [ -f $(>) ]; then \
115		$(SED) -e "/^#/d" -e s/#.*$$// $(>) | \
116		$(AWK) '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' | \
117		$(MAKEDBM) - networks.byname; \
118		$(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \
119		$(MAKEDBM) - networks.byaddr; \
120		$(TOUCH) $(@); \
121		$(ECHO) "updated networks"; \
122		if [ ! $(NOPUSH) ]; then \
123			$(YPPUSH) -d $(DOMAIN) networks.byname; \
124			$(YPPUSH) -d $(DOMAIN) networks.byaddr; \
125			$(ECHO) "pushed networks"; \
126		else \
127			: ; \
128		fi \
129	else \
130		$(ECHO) "couldn't find $(>)"; \
131	fi
132
133rpc.time: $(DIR)/rpc
134	-@if [ -f $(>) ]; then \
135		$(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \
136		$(MAKEDBM) - rpc.bynumber; \
137		$(TOUCH) $(@); \
138		$(ECHO) "updated rpc"; \
139		if [ ! $(NOPUSH) ]; then \
140			$(YPPUSH) -d $(DOMAIN) rpc.bynumber; \
141			$(ECHO) "pushed rpc"; \
142		else \
143			: ; \
144		fi \
145	else \
146		$(ECHO) "couldn't find $(>)"; \
147	fi
148
149
150services.time: $(DIR)/services
151	-@if [ -f $(>) ]; then \
152		$(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \
153		$(MAKEDBM) - services.byname; \
154		$(TOUCH) $(@); \
155		$(ECHO) "updated services"; \
156		if [ ! $(NOPUSH) ]; then \
157			$(YPPUSH) -d $(DOMAIN) services.byname; \
158			$(ECHO) "pushed services"; \
159		else \
160			: ; \
161		fi \
162	else \
163		$(ECHO) "couldn't find $(>)"; \
164	fi
165
166
167protocols.time: $(DIR)/protocols
168	-@if [ -f $(>) ]; then \
169		$(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \
170		$(MAKEDBM) - protocols.bynumber; \
171		$(SED) -e "/^#/d" -e s/#.*$$// $(>) | \
172		$(AWK) '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' | \
173		$(MAKEDBM) - protocols.byname; \
174		$(TOUCH) $(@); \
175		$(ECHO) "updated protocols"; \
176		if [ ! $(NOPUSH) ]; then \
177			$(YPPUSH) -d $(DOMAIN) protocols.bynumber; \
178			$(YPPUSH) -d $(DOMAIN) protocols.byname; \
179			$(ECHO) "pushed protocols"; \
180		else \
181			: ; \
182		fi \
183	else \
184		$(ECHO) "couldn't find $(>)"; \
185	fi
186
187
188netid.time: $(DIR)/passwd $(DIR)/group $(DIR)/hosts $(DIR)/netid
189	-@$(MKNETID) -q -d $(DOMAIN) -p $(DIR)/passwd -g $(DIR)/group -h \
190	      $(DIR)/hosts -m $(DIR)/netid | \
191	  $(MAKEDBM) - netid.byname; \
192	  $(TOUCH) $(@); \
193	  $(ECHO) "updated netid"; \
194	  if [ ! $(NOPUSH) ]; then \
195		$(YPPUSH) -d $(DOMAIN) netid.byname; \
196		$(ECHO) "pushed netid"; \
197	  else \
198		: ; \
199	  fi
200
201ypservers.time: $(YPDBDIR)/$(DOMAIN)/ypservers
202	-@$(MAKEDBM) ypservers ypservers; \
203	$(TOUCH) $(@); \
204	$(ECHO) "updated ypservers"; \
205	if [ ! $(NOPUSH) ]; then \
206		$(YPPUSH) -d $(DOMAIN) ypservers; \
207		$(ECHO) "pushed ypservers"; \
208	else \
209		: ; \
210	fi
211
212passwd: passwd.time
213group: group.time
214hosts: hosts.time
215ethers: ethers.time
216networks: networks.time
217rpc: rpc.time
218services: services.time
219protocols: protocols.time
220netid: netid.time
221ypservers: ypservers.time
222$(DIR)/passwd:
223$(DIR)/group:
224$(DIR)/hosts:
225$(DIR)/ethers:
226$(DIR)/networks:
227$(DIR)/rpc:
228$(DIR)/services:
229$(DIR)/protocols:
230$(DIR)/netid:
231$(YPDBDIR)/$(DOMAIN)/ypservers:
232