Merge from vendor branch LIBARCHIVE:
[dragonfly.git] / usr.sbin / ypserv / Makefile.yp
1 #
2 # Makefile for the NIS databases
3 #
4 # $FreeBSD: src/usr.sbin/ypserv/Makefile.yp,v 1.28.2.3 2001/05/18 18:28:02 gshapiro Exp $
5 # $DragonFly: src/usr.sbin/ypserv/Makefile.yp,v 1.3 2004/01/08 18:39:19 asmodai Exp $
6 #
7 # This Makefile should only be run on the NIS master server of a domain.
8 # All updated maps will be pushed to all NIS slave servers listed in the
9 # /var/yp/ypservers file. Please make sure that the hostnames of all
10 # NIS servers in your domain are listed in /var/yp/ypservers.
11 #
12 # This Makefile can be modified to support more NIS maps if desired.
13 #
14
15 # If this machine is an NIS master, comment out this next line so
16 # that changes to the NIS maps can be propagated to the slave servers.
17 # (By default we assume that we are only serving a small domain with
18 # only one server.)
19 #
20 NOPUSH = "True"
21
22 # If you want to use a FreeBSD NIS server to serve non-FreeBSD clients
23 # (i.e. clients who expect the password field in the passwd maps to be
24 # valid) then uncomment this line. This will cause $YPDIR/passwd to
25 # be generated with valid password fields. This is insecure: FreeBSD
26 # normally only serves the master.passwd maps (which have real encrypted
27 # passwords in them) to the superuser on other FreeBSD machines, but
28 # non-FreeBSD clients (e.g. SunOS, Solaris (without NIS+), IRIX, HP-UX,
29 # etc...) will only work properly in 'unsecure' mode.
30
31 #UNSECURE = "True"
32
33 # The following line encodes the YP_INTERDOMAIN key into the hosts.byname
34 # and hosts.byaddr maps so that ypserv(8) will do DNS lookups to resolve
35 # hosts not in the current domain. Commenting this line out will disable
36 # the DNS lookups.
37 B=-b
38
39 # Normally, the master.passwd.* maps are guarded against access from
40 # non-privileged users. By commenting out the following line, the YP_SECURE
41 # key will be removed from these maps, allowing anyone to access them.
42 S=-s
43
44 # These are commands which this Makefile needs to properly rebuild the
45 # NIS databases. Don't change these unless you have a good reason. Also
46 # be sure not to place an @ in front of /usr/bin/awk: it isn't necessary
47 # and it'll break everything in sight.
48 #
49 AWK = /usr/bin/awk
50 RM  = @/bin/rm -f
51 MV  = @/bin/mv -f
52 RMV  = /bin/mv -f
53 RCAT = /bin/cat
54 CAT = @$(RCAT)
55
56 MKDB = /usr/sbin/yp_mkdb
57 DBLOAD = $(MKDB) -m `hostname`
58 MKNETID = /usr/libexec/mknetid
59 NEWALIASES = /usr/bin/newaliases
60 YPPUSH = /usr/sbin/yppush
61 .if !defined(UPDATE_DOMAIN)
62 DOMAIN = `/bin/domainname`
63 .else
64 DOMAIN = $(UPDATE_DOMAIN)
65 .endif
66 REVNETGROUP = /usr/libexec/revnetgroup
67 TMP = `echo $@.$$$$`
68
69 # It is advisable to create a separate directory to contain the
70 # source files used to generate your NIS maps. If you intend to
71 # support multiple domains, something like /src/dir/$DOMAIN
72 # would work well.
73 YPSRCDIR = /etc
74 .if !defined(YP_DIR)
75 YPDIR = /var/yp
76 .else
77 YPDIR = $(YP_DIR)
78 .endif
79 YPMAPDIR = $(YPDIR)/$(DOMAIN)
80
81 # These are the files from which the NIS databases are built. You may edit
82 # these to taste in the event that you wish to keep your NIS source files
83 # separate from your NIS server's actual configuration files. Note that the
84 # NIS passwd and master.passwd files are stored in /var/yp: the server's
85 # real password database is not used by default. However, you may use
86 # the real /etc/passwd and /etc/master.passwd files by:
87 #
88 #
89 # - invoking yppasswdd with `-t /etc/master.passwd' (yppasswdd will do a
90 #   'pwd_mkdb' as needed if /etc/master.passwd is thus specified).
91 # - Specifying the location of the master.passwd file using the
92 #   MASTER_PASSWD variable, i.e.:
93 #
94 #   # make MASTER_PASSWD=/path/to/some/other/master.passwd
95 #
96 # - (optionally): editing this Makefile to change the default location.
97 #
98 # To add a user, edit $(YPDIR)/master.passwd and type 'make'. The raw
99 # passwd file will be generated from the master.passwd file automagically.
100 #
101 ETHERS    = $(YPSRCDIR)/ethers     # ethernet addresses (for rarpd)
102 BOOTPARAMS= $(YPSRCDIR)/bootparams # for booting Sun boxes (bootparamd)
103 HOSTS     = $(YPSRCDIR)/hosts
104 NETWORKS  = $(YPSRCDIR)/networks
105 PROTOCOLS = $(YPSRCDIR)/protocols
106 RPC       = $(YPSRCDIR)/rpc
107 SERVICES  = $(YPSRCDIR)/services
108 GROUP     = $(YPSRCDIR)/group
109 ALIASES   = $(YPSRCDIR)/mail/aliases
110 NETGROUP  = $(YPDIR)/netgroup
111 PASSWD    = $(YPDIR)/passwd
112 .if !defined(MASTER_PASSWD)
113 MASTER    = $(YPDIR)/master.passwd
114 .else
115 MASTER    = $(MASTER_PASSWD)
116 .endif
117 YPSERVERS = $(YPDIR)/ypservers  # List of all NIS servers for a domain
118 PUBLICKEY = $(YPSRCDIR)/publickey
119 NETID     = $(YPSRCDIR)/netid
120 AMDHOST   = $(YPSRCDIR)/amd.host
121
122 # List of maps that are always built.
123 # If you want to omit some of them, feel free to comment
124 # them out from this list.
125 TARGETS= servers hosts networks protocols rpc services group
126 #TARGETS+= aliases
127
128 # Sanity checks: filter out targets we can't build
129 # Note that we don't build the ethers or boorparams maps by default
130 # since /etc/ethers and /etc/bootparams are not likely to be present
131 # on all systems.
132 .if exists($(ETHERS))
133 TARGETS+= ethers
134 .else
135 ETHERS= /dev/null
136 .endif
137
138 .if exists($(BOOTPARAMS))
139 TARGETS+= bootparams
140 .else
141 BOOTPARAMS= /dev/null
142 .endif
143
144 .if exists($(NETGROUP))
145 TARGETS+= netgrp
146 .else
147 NETGROUP= /dev/null
148 .endif
149
150 .if exists($(MASTER))
151 TARGETS+= passwd master.passwd netid
152 .else
153 MASTER= /dev/null
154 TARGETS+= nopass
155 .endif
156
157 .if exists($(PUBLICKEY))
158 TARGETS+= publickey
159 .else
160 PUBLICKEY= /dev/null
161 .endif
162
163 .if exists($(AMDHOST))
164 TARGETS+= amd.host
165 .else
166 AMDHOST= /dev/null
167 .endif
168
169 target: 
170         @if [ ! -d $(DOMAIN) ]; then mkdir $(DOMAIN); fi; \
171         cd $(DOMAIN) ; echo "NIS Map update started on `date` for domain $(DOMAIN)" ; \
172         make -f ../Makefile all; echo "NIS Map update completed."
173
174 all: $(TARGETS)
175
176 ethers:    ethers.byname ethers.byaddr
177 bootparam: bootparams
178 hosts:     hosts.byname hosts.byaddr
179 networks:  networks.byaddr networks.byname
180 protocols: protocols.bynumber protocols.byname
181 rpc:       rpc.byname rpc.bynumber
182 services:  services.byname
183 passwd:    passwd.byname passwd.byuid
184 group:     group.byname group.bygid
185 netgrp:    netgroup
186 netid:     netid.byname
187 servers:   ypservers
188 publickey: publickey.byname
189 aliases:   mail.aliases
190
191 master.passwd:  master.passwd.byname master.passwd.byuid
192
193 #
194 # This is a special target used only when doing in-place updates with
195 # rpc.yppasswdd. In this case, the maps will be updated by the rpc.yppasswdd
196 # server and won't need to be remade. They will have to be pushed to the
197 # slaves however. Calling this target implicitly insures that this will
198 # happen.
199 #
200 pushpw:
201         @$(DBLOAD) -c
202         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) master.passwd.byname ; fi
203         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) master.passwd.byuid ; fi
204         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) passwd.byname ; fi
205         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) passwd.byuid ; fi
206
207 pushmap:
208         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $(PUSHMAP) ; fi
209
210 nopass:
211         @echo ""
212         @echo "                ********WARNING********"
213         @echo "  Couldn't find the master.passwd source file. This file"
214         @echo "  is needed to generate the master.passwd and passwd maps."
215         @echo "  The default location is /var/yp/master.passwd. You should"
216         @echo "  edit /var/yp/Makefile and set the MASTER variable to point"
217         @echo "  to the source file you wish to use for building the passwd"
218         @echo "  maps, or else invoke make(1) in the following manner:"
219         @echo ""
220         @echo "        make MASTER_PASSWD=/path/to/master.passwd"
221         @echo ""
222
223 mail.aliases: $(ALIASES)
224         @echo "Updating $@..."
225         @$(NEWALIASES) -oA$(ALIASES)
226         @$(MKDB) -u $(ALIASES).db \
227                 | $(DBLOAD) -i $(ALIASES) -o $(YPMAPDIR)/$@ - $(TMP); \
228                 $(RMV) $(TMP) $@
229         @$(DBLOAD) -c
230         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
231         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
232
233
234 ypservers: $(YPSERVERS)
235         @echo "Updating $@..."
236         $(CAT) $(YPSERVERS) | \
237         $(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*") print $$0"\t"$$0 }' $^ \
238                 | $(DBLOAD) -i $(YPSERVERS) -o $(YPMAPDIR)/$@ - $(TMP); \
239                 $(RMV) $(TMP) $@
240         @$(DBLOAD) -c
241         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
242         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
243
244
245 ethers.byname: $(ETHERS)
246         @echo "Updating $@..."
247 .if ${ETHERS} == "/dev/null"
248         @echo "Ethers source file not found -- skipping"
249 .else
250         $(CAT) $(ETHERS) | \
251         $(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
252                 print $$2"\t"$$0 }' $^ | $(DBLOAD) -i $(ETHERS) \
253                 -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
254         @$(DBLOAD) -c
255         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
256         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
257 .endif
258
259 ethers.byaddr: $(ETHERS)
260         @echo "Updating $@..."
261 .if ${ETHERS} == "/dev/null"
262         @echo "Ethers source file not found -- skipping"
263 .else
264         $(CAT) $(ETHERS) | \
265         $(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
266                 print $$1"\t"$$0 }' $^ | $(DBLOAD) -i $(ETHERS) \
267                 -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
268         @$(DBLOAD) -c
269         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
270         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
271 .endif
272
273
274 bootparams: $(BOOTPARAMS)
275         @echo "Updating $@..."
276 .if ${BOOTPARAMS} == "/dev/null"
277         @echo "Bootparams source file not found -- skipping"
278 .else
279         $(CAT) $(BOOTPARAMS) | \
280         $(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
281                 print $$0 }' $^ | $(DBLOAD) -i $(BOOTPARAMS) \
282                 -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
283         @$(DBLOAD) -c
284         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
285         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
286 .endif
287
288
289 netgroup: $(NETGROUP) netgroup.byhost netgroup.byuser
290         @echo "Updating $@..."
291 .if ${NETGROUP} == "/dev/null"
292         @echo "Netgroup source file not found -- skipping"
293 .else
294         $(CAT) $(NETGROUP) | \
295         $(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
296                 print $$0 }' $^ | $(DBLOAD) -i $(NETGROUP) \
297                 -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
298         @$(DBLOAD) -c
299         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
300         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
301         @$(MAKE) -f ../Makefile netid
302 .endif
303
304
305 netgroup.byhost: $(NETGROUP)
306         @echo "Updating $@..."
307 .if ${NETGROUP} == "/dev/null"
308         @echo "Netgroup source file not found -- skipping"
309 .else
310         $(CAT) $(NETGROUP) | $(REVNETGROUP) -h -f $(NETGROUP) | \
311         $(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
312                 print $$0 }' $^ | $(DBLOAD) -i $(NETGROUP) \
313                 -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
314         @$(DBLOAD) -c
315         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
316         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
317 .endif
318
319
320 netgroup.byuser: $(NETGROUP)
321         @echo "Updating $@..."
322 .if ${NETGROUP} == "/dev/null"
323         @echo "Netgroup source file not found -- skipping"
324 .else
325         $(CAT) $(NETGROUP) | $(REVNETGROUP) -u -f $(NETGROUP) | \
326         $(AWK) '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
327                 print $$0 }' $^ | $(DBLOAD) -i $(NETGROUP) \
328                 -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
329         @$(DBLOAD) -c
330         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
331         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
332 .endif
333
334
335 hosts.byname: $(HOSTS)
336         @echo "Updating $@..."
337         $(CAT) $(HOSTS) | \
338         $(AWK) '/^[0-9]/ { for (n=2; n<=NF && $$n !~ "^#.*"; n++) \
339                 print $$n"\t"$$0 }' $^ | $(DBLOAD) ${B} -i $(HOSTS)  \
340                 -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
341         @$(DBLOAD) -c
342         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
343         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
344         @$(MAKE) -f ../Makefile netid
345
346
347 hosts.byaddr: $(HOSTS)
348         @echo "Updating $@..."
349         $(CAT) $(HOSTS) | \
350         $(AWK) '$$1 !~ "^#.*" { print $$1"\t"$$0 }' $^ \
351                 | $(DBLOAD) ${B} -i $(HOSTS) -o $(YPMAPDIR)/$@ - $(TMP); \
352                 $(RMV) $(TMP) $@
353         @$(DBLOAD) -c
354         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
355         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
356         @$(MAKE) -f ../Makefile netid
357
358
359 networks.byname: $(NETWORKS)
360         @echo "Updating $@..."
361         $(CAT) $(NETWORKS) | \
362         $(AWK) \
363            '$$1 !~ "^#.*"  { print $$1"\t"$$0; \
364                           for (n=3; n<=NF && $$n !~ "^#.*"; n++) \
365                               print $$n"\t"$$0 \
366                 }' $^ | $(DBLOAD) -i $(NETWORKS) -o $(YPMAPDIR)/$@ - $(TMP); \
367                 $(RMV) $(TMP) $@
368         @$(DBLOAD) -c
369         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
370         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
371
372
373 networks.byaddr: $(NETWORKS)
374         @echo "Updating $@..."
375         $(CAT) $(NETWORKS) | \
376         $(AWK) '$$1 !~ "^#.*" { print $$2"\t"$$0 }' $^ \
377                 | $(DBLOAD) -i $(NETWORKS) -o $(YPMAPDIR)/$@ - $(TMP); \
378                 $(RMV) $(TMP) $@
379         @$(DBLOAD) -c
380         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
381         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
382
383
384 protocols.byname: $(PROTOCOLS)
385         @echo "Updating $@..."
386         $(CAT) $(PROTOCOLS) | \
387         $(AWK) \
388            '$$1 !~ "^#.*"       { print $$1"\t"$$0; \
389                           for (n=3; n<=NF && $$n !~ "^#.*"; n++) \
390                               print $$n"\t"$$0 \
391                         }' $^ | $(DBLOAD) -i $(PROTOCOLS) \
392                 -o $(YPMAPDIR)/$@ - $(TMP); $(RMV) $(TMP) $@
393         @$(DBLOAD) -c
394         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
395         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
396
397
398 protocols.bynumber: $(PROTOCOLS)
399         @echo "Updating $@..."
400         $(CAT) $(PROTOCOLS) | \
401         $(AWK) '$$1 !~ "^#.*" { print $$2"\t"$$0 }' $^ \
402                 | $(DBLOAD) -i $(PROTOCOLS) -o $(YPMAPDIR)/$@ - $(TMP); \
403                 $(RMV) $(TMP) $@
404         @$(DBLOAD) -c
405         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
406         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
407
408
409 rpc.byname: $(RPC)
410         @echo "Updating $@..."
411         $(CAT) $(RPC) | \
412         $(AWK) \
413            '$$1 !~ "^#.*"  { print $$1"\t"$$0; \
414                           for (n=3; n<=NF && $$n !~ "^#.*"; n++) \
415                               print $$n"\t"$$0 \
416                 }' $^ | $(DBLOAD) -i $(RPC) -o $(YPMAPDIR)/$@ - $(TMP); \
417                 $(RMV) $(TMP) $@
418         @$(DBLOAD) -c
419         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
420         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
421
422
423 rpc.bynumber: $(RPC)
424         @echo "Updating $@..."
425         $(CAT) $(RPC) | \
426         $(AWK) '$$1 !~ "^#.*" { print $$2"\t"$$0 }' $^ \
427                 | $(DBLOAD)  -i $(RPC) -o $(YPMAPDIR)/$@ - $(TMP); \
428                 $(RMV) $(TMP) $@
429         @$(DBLOAD) -c
430         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
431         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
432
433
434 services.byname: $(SERVICES)
435         @echo "Updating $@..."
436         $(CAT) $(SERVICES) | \
437         $(AWK) \
438            '$$1 !~ "^#.*"  { for (n=1; n<=NF && $$n !~ "^#.*"; n++) { \
439                                 if (split($$2, t, "/")) { \
440                                         printf("%s/%s", $$n, t[2]) }; \
441                                         print "\t"$$0;  \
442                                         if (n == 1) n = 2; \
443                            } ; print $$2"\t"$$0 ; \
444                 }' $^ | $(DBLOAD) -i $(SERVICES) -o $(YPMAPDIR)/$@ - $(TMP); \
445                 $(RMV) $(TMP) $@
446         @$(DBLOAD) -c
447         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
448         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
449
450
451 publickey.byname: $(PUBLICKEY)
452         @echo "Updating $@..."
453 .if ${PUBLICKEY} == "/dev/null"
454         @echo "Publickey source file not found -- skipping"
455 .else
456         $(CAT) $(PUBLICKEY) | \
457         $(AWK) '$$1 !~ "^#.*" { print $$1"\t"$$2 }' $^ \
458                 | $(DBLOAD)  -i $(PUBLICKEY) -o $(YPMAPDIR)/$@ - $(TMP); \
459                 $(RMV) $(TMP) $@
460         @$(DBLOAD) -c
461         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
462         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
463 .endif
464
465
466 $(PASSWD): $(MASTER)
467         @echo "Creating new $@ file from $(MASTER)..."
468         @if [ ! $(UNSECURE) ]; then \
469         $(RCAT) $(MASTER) | \
470         $(AWK) -F: '{if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
471                 print $$1":*:"$$3":"$$4":"$$8":"$$9":"$$10}' $^ \
472                 > $(PASSWD) ; \
473         else $(RCAT) $(MASTER) | \
474         $(AWK) -F: '{if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
475                 print $$1":"$$2":"$$3":"$$4":"$$8":"$$9":"$$10}' $^ \
476                 > $(PASSWD) ; fi
477
478
479 passwd.byname: $(PASSWD)
480         @echo "Updating $@..."
481         $(CAT) $(PASSWD) | \
482         $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
483                 print $$1"\t"$$0 }' $^ \
484                 | $(DBLOAD) -f -i $(PASSWD) -o $(YPMAPDIR)/$@ - $(TMP); \
485                 $(RMV) $(TMP) $@
486         @$(DBLOAD) -c
487         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
488         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
489
490
491 passwd.byuid: $(PASSWD)
492         @echo "Updating $@..."
493         $(CAT) $(PASSWD) | \
494         $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
495                 print $$3"\t"$$0 }' $^ \
496                 | $(DBLOAD) -f -i $(PASSWD) -o $(YPMAPDIR)/$@ - $(TMP); \
497                 $(RMV) $(TMP) $@
498         @$(DBLOAD) -c
499         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
500         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
501         @$(MAKE) -f ../Makefile netid
502
503
504 group.byname: $(GROUP)
505         @echo "Updating $@..."
506         $(CAT) $(GROUP) | \
507         $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
508                 print $$1"\t"$$0 }' $^ \
509                 | $(DBLOAD) -f -i $(GROUP) -o $(YPMAPDIR)/$@ - $(TMP); \
510                 $(RMV) $(TMP) $@
511         @$(DBLOAD) -c
512         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
513         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
514
515
516 group.bygid: $(GROUP)
517         @echo "Updating $@..."
518         $(CAT) $(GROUP) | \
519         $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
520                 print $$3"\t"$$0 }' $^ \
521                 | $(DBLOAD) -f -i $(GROUP) -o $(YPMAPDIR)/$@ - $(TMP); \
522                 $(RMV) $(TMP) $@
523         @$(DBLOAD) -c
524         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
525         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
526         @$(MAKE) -f ../Makefile netid
527
528
529 netid.byname: $(GROUP) $(PASSWD)
530         @echo "Updating $@..."
531         @$(MKNETID) -q -p $(PASSWD) -g $(GROUP) -h $(HOSTS) -n $(NETID) \
532                 -d $(DOMAIN) | $(DBLOAD) -o $(YPMAPDIR)/$@ - $(TMP); \
533                 $(RMV) $(TMP) $@
534         @$(DBLOAD) -c
535         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
536         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
537
538
539 master.passwd.byname: $(MASTER)
540         @echo "Updating $@..."
541 .if ${MASTER} == "/dev/null"
542         @echo "Master.passwd source file not found -- skipping"
543 .else
544         $(CAT) $(MASTER) | \
545         $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
546                 print $$1"\t"$$0 }' $^ \
547                 | $(DBLOAD) ${S} -f -i $(MASTER) -o $(YPMAPDIR)/$@ - $(TMP); \
548                 $(RMV) $(TMP) $@
549         @$(DBLOAD) -c
550         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
551         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
552 .endif
553
554
555 master.passwd.byuid: $(MASTER)
556         @echo "Updating $@..."
557 .if ${MASTER} == "/dev/null"
558         @echo "Master.passwd source file not found -- skipping"
559 .else
560         $(CAT) $(MASTER) | \
561         $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
562                 print $$3"\t"$$0 }' $^ \
563                 | $(DBLOAD) ${S} -f -i $(MASTER) -o $(YPMAPDIR)/$@ - $(TMP); \
564                 $(RMV) $(TMP) $@
565         @$(DBLOAD) -c
566         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
567         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
568 .endif
569
570
571 amd.host: $(AMDHOST)
572         @echo "Updating $@..."
573         $(CAT) $(AMDHOST) | \
574         $(AWK) '$$1 !~ "^#.*"  { \
575           for (i = 1; i <= NF; i++) \
576           if (i == NF) { \
577             if (substr($$i, length($$i), 1) == "\\") \
578               printf("%s", substr($$i, 1, length($$i) - 1)); \
579             else \
580               printf("%s\n", $$i); \
581           } \
582           else \
583             printf("%s ", $$i); \
584         }' | \
585         $(DBLOAD) -i $(AMDHOST) -o $(YPMAPDIR)/$@ - $(TMP); \
586                 $(RMV) $(TMP) $@
587         @$(DBLOAD) -c
588         @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
589         @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
590