1# $OpenBSD: Makefile.yp,v 1.14 2009/04/12 21:03:28 schwarze Exp $ 2 3# ---------------------------------------------------------------------- 4# User-configurable settings; see Makefile.yp(8) for details. 5# ---------------------------------------------------------------------- 6 7# Select the source directories to build YP maps from. 8DIR=/etc 9AMDDIR=$(DIR)/amd 10 11# Set this to disable automatic distribution of YP maps. 12NOPUSH="" 13 14# Unset this to exclude encrypted passwords from the passwd maps. 15UNSECURE="True" 16 17# Only include UIDs and GIDs inside certain ranges into the maps. 18MINUID=1000 19MAXUID=32765 20MINGID=1000 21MAXGID=32765 22 23# Set this to -b to have ypserv ask DNS for unknown hosts. 24USEDNS= 25 26all: passwd group hosts ethers networks rpc services protocols netid netgroup amd.home aliases 27 28# ---------------------------------------------------------------------- 29# End of user-configurable settings; you may also add new targets, though. 30# ---------------------------------------------------------------------- 31 32# The following is also hardcoded into ypserv(8) and other programs. 33YPDBDIR=/var/yp 34 35AWK=/usr/bin/awk 36CAT=/bin/cat 37CP=/bin/cp 38CUT=/usr/bin/cut 39ECHO=/bin/echo 40MAKEDBM=/usr/sbin/makedbm 41MAKEDBM-S=$(MAKEDBM) -s 42MKALIAS=/usr/sbin/mkalias 43MKNETID=/usr/sbin/mknetid 44REVNETGROUP=/usr/sbin/revnetgroup 45RM=/bin/rm 46SED=/usr/bin/sed 47SENDMAIL=/usr/sbin/sendmail 48STDETHERS=/usr/sbin/stdethers 49STDHOSTS=/usr/sbin/stdhosts 50TOUCH=/usr/bin/touch 51YPPUSH=/usr/sbin/yppush 52 53DOMAIN="`/usr/bin/basename ${.CURDIR}`" 54 55passwd.time: $(DIR)/master.passwd 56 -@if [ -f $(>) ]; then \ 57 if [ ! $(UNSECURE) ]; then \ 58 $(CAT) $(>) | $(CUT) -d: -f1-4,8-10 | \ 59 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 60 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 61 { if (minuid <= $$3 && maxuid >= $$3) \ 62 print $$1, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\ 63 $(MAKEDBM) - passwd.byname; \ 64 $(CAT) $(>) | $(CUT) -d: -f1-4,8-10 |\ 65 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 66 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 67 { if (minuid <= $$3 && maxuid >= $$3) \ 68 print $$3, $$1":*:"$$3":"$$4":"$$5":"$$6":"$$7 }' -|\ 69 $(MAKEDBM) - passwd.byuid; \ 70 else \ 71 $(CAT) $(>) | $(CUT) -d: -f1-4,8-10 | \ 72 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 73 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 74 { if (minuid <= $$3 && maxuid >= $$3) \ 75 print $$1, $$0 }' - | \ 76 $(MAKEDBM) - passwd.byname; \ 77 $(CAT) $(>) | $(CUT) -d: -f1-4,8-10 |\ 78 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 79 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 80 { if (minuid <= $$3 && maxuid >= $$3) \ 81 print $$3, $$0 }' - | \ 82 $(MAKEDBM) - passwd.byuid; \ 83 fi; \ 84 $(CAT) $(>) | \ 85 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 86 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 87 { if (minuid <= $$3 && maxuid >= $$3) \ 88 print $$1, $$0 }' - | $(MAKEDBM-S) - master.passwd.byname; \ 89 $(CAT) $(>) | \ 90 $(AWK) -v minuid=${MINUID} -v maxuid=${MAXUID} \ 91 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 92 { if (minuid <= $$3 && maxuid >= $$3) \ 93 print $$3, $$0 }' - | $(MAKEDBM-S) - master.passwd.byuid; \ 94 $(TOUCH) $(@); \ 95 $(ECHO) "updated passwd"; \ 96 if [ ! $(NOPUSH) ]; then \ 97 $(YPPUSH) -d $(DOMAIN) passwd.byname; \ 98 $(YPPUSH) -d $(DOMAIN) passwd.byuid; \ 99 $(YPPUSH) -d $(DOMAIN) master.passwd.byname; \ 100 $(YPPUSH) -d $(DOMAIN) master.passwd.byuid; \ 101 $(ECHO) "pushed passwd"; \ 102 else \ 103 : ; \ 104 fi \ 105 else \ 106 $(ECHO) "couldn't find $(>)"; \ 107 fi 108 109 110group.time: $(DIR)/group 111 -@if [ -f $(>) ]; then \ 112 $(AWK) -v mingid=${MINGID} -v maxgid=${MAXGID} \ 113 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 114 { if (mingid <= $$3 && maxgid >= $$3) print $$1, $$0 }' $(>) | \ 115 $(MAKEDBM) - group.byname; \ 116 $(AWK) -v mingid=${MINGID} -v maxgid=${MAXGID} \ 117 'BEGIN { FS=":"; OFS="\t"; } /^[a-zA-Z0-9_]/ \ 118 { if (mingid <= $$3 && maxgid >= $$3) print $$3, $$0 }' $(>) | \ 119 $(MAKEDBM) - group.bygid; \ 120 $(TOUCH) $(@); \ 121 $(ECHO) "updated group"; \ 122 if [ ! $(NOPUSH) ]; then \ 123 $(YPPUSH) -d $(DOMAIN) group.byname; \ 124 $(YPPUSH) -d $(DOMAIN) group.bygid; \ 125 $(ECHO) "pushed group"; \ 126 else \ 127 : ; \ 128 fi \ 129 else \ 130 $(ECHO) "couldn't find $(>)"; \ 131 fi 132 133hosts.time: $(DIR)/hosts 134 -@if [ -f $(DIR)/hosts ]; then \ 135 $(STDHOSTS) $(>) | $(SED) -e s/#.*$$// | \ 136 $(AWK) '{for (i = 2; i <= NF; i++) print $$i, $$0 }' | \ 137 $(MAKEDBM) $(USEDNS) - hosts.byname; \ 138 $(STDHOSTS) $(>) | \ 139 $(AWK) 'BEGIN { OFS="\t"; } { print $$1, $$0 }' | \ 140 $(MAKEDBM) $(USEDNS) - hosts.byaddr; \ 141 $(TOUCH) $(@); \ 142 $(ECHO) "updated hosts"; \ 143 if [ ! $(NOPUSH) ]; then \ 144 $(YPPUSH) -d $(DOMAIN) hosts.byname; \ 145 $(YPPUSH) -d $(DOMAIN) hosts.byaddr; \ 146 $(ECHO) "pushed hosts"; \ 147 else \ 148 : ; \ 149 fi \ 150 else \ 151 $(ECHO) "couldn't find $(>)"; \ 152 fi 153 154ethers.time: $(DIR)/ethers 155 -@if [ -f $(DIR)/ethers ]; then \ 156 $(STDETHERS) $(>) | $(SED) -e s/#.*$$// | \ 157 $(AWK) 'BEGIN { FS="\t"; OFS="\t"; } { print $$1, $$0 }' | \ 158 $(MAKEDBM) - ethers.byaddr; \ 159 $(STDETHERS) $(>) | \ 160 $(AWK) 'BEGIN { FS="\t"; OFS="\t"; } { print $$2, $$0 }' | \ 161 $(MAKEDBM) - ethers.byname; \ 162 $(TOUCH) $(@); \ 163 $(ECHO) "updated ethers"; \ 164 if [ ! $(NOPUSH) ]; then \ 165 $(YPPUSH) -d $(DOMAIN) ethers.byaddr; \ 166 $(YPPUSH) -d $(DOMAIN) ethers.byname; \ 167 $(ECHO) "pushed ethers"; \ 168 else \ 169 : ; \ 170 fi \ 171 else \ 172 $(ECHO) "couldn't find $(>)"; \ 173 fi 174 175networks.time: $(DIR)/networks 176 -@if [ -f $(>) ]; then \ 177 $(SED) -e "/^#/d" -e s/#.*$$// $(>) | \ 178 $(AWK) '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' | \ 179 $(MAKEDBM) - networks.byname; \ 180 $(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \ 181 $(MAKEDBM) - networks.byaddr; \ 182 $(TOUCH) $(@); \ 183 $(ECHO) "updated networks"; \ 184 if [ ! $(NOPUSH) ]; then \ 185 $(YPPUSH) -d $(DOMAIN) networks.byname; \ 186 $(YPPUSH) -d $(DOMAIN) networks.byaddr; \ 187 $(ECHO) "pushed networks"; \ 188 else \ 189 : ; \ 190 fi \ 191 else \ 192 $(ECHO) "couldn't find $(>)"; \ 193 fi 194 195rpc.time: $(DIR)/rpc 196 -@if [ -f $(>) ]; then \ 197 $(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \ 198 $(MAKEDBM) - rpc.bynumber; \ 199 $(TOUCH) $(@); \ 200 $(ECHO) "updated rpc"; \ 201 if [ ! $(NOPUSH) ]; then \ 202 $(YPPUSH) -d $(DOMAIN) rpc.bynumber; \ 203 $(ECHO) "pushed rpc"; \ 204 else \ 205 : ; \ 206 fi \ 207 else \ 208 $(ECHO) "couldn't find $(>)"; \ 209 fi 210 211 212services.time: $(DIR)/services 213 -@if [ -f $(>) ]; then \ 214 $(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \ 215 $(MAKEDBM) - services.byname; \ 216 $(TOUCH) $(@); \ 217 $(ECHO) "updated services"; \ 218 if [ ! $(NOPUSH) ]; then \ 219 $(YPPUSH) -d $(DOMAIN) services.byname; \ 220 $(ECHO) "pushed services"; \ 221 else \ 222 : ; \ 223 fi \ 224 else \ 225 $(ECHO) "couldn't find $(>)"; \ 226 fi 227 228 229protocols.time: $(DIR)/protocols 230 -@if [ -f $(>) ]; then \ 231 $(AWK) 'BEGIN { OFS="\t"; } $$1 !~ /^#/ { print $$2, $$0 }' $(>) | \ 232 $(MAKEDBM) - protocols.bynumber; \ 233 $(SED) -e "/^#/d" -e s/#.*$$// $(>) | \ 234 $(AWK) '{print $$1, $$0; for (i = 3;i <= NF;i++) print $$i,$$0}' | \ 235 $(MAKEDBM) - protocols.byname; \ 236 $(TOUCH) $(@); \ 237 $(ECHO) "updated protocols"; \ 238 if [ ! $(NOPUSH) ]; then \ 239 $(YPPUSH) -d $(DOMAIN) protocols.bynumber; \ 240 $(YPPUSH) -d $(DOMAIN) protocols.byname; \ 241 $(ECHO) "pushed protocols"; \ 242 else \ 243 : ; \ 244 fi \ 245 else \ 246 $(ECHO) "couldn't find $(>)"; \ 247 fi 248 249 250netid.time: $(DIR)/passwd $(DIR)/group $(DIR)/hosts $(DIR)/netid 251 -@$(MKNETID) -q -d $(DOMAIN) -p $(DIR)/passwd -g $(DIR)/group -h $(DIR)/hosts -m $(DIR)/netid | \ 252 $(MAKEDBM) - netid.byname; \ 253 $(TOUCH) $(@); \ 254 $(ECHO) "updated netid"; \ 255 if [ ! $(NOPUSH) ]; then \ 256 $(YPPUSH) -d $(DOMAIN) netid.byname; \ 257 $(ECHO) "pushed netid"; \ 258 else \ 259 : ; \ 260 fi 261 262 263netgroup.time: $(DIR)/netgroup 264 -@if [ -f $(>) ]; then \ 265 $(CAT) $(>) | $(MAKEDBM) - netgroup; \ 266 $(CAT) $(>) | $(REVNETGROUP) -u -f - | \ 267 $(MAKEDBM) - netgroup.byuser; \ 268 $(CAT) $(>) | $(REVNETGROUP) -h -f - | \ 269 $(MAKEDBM) - netgroup.byhost; \ 270 $(TOUCH) $(@); \ 271 $(ECHO) "updated netgroup"; \ 272 if [ ! $(NOPUSH) ]; then \ 273 $(YPPUSH) -d $(DOMAIN) netgroup; \ 274 $(YPPUSH) -d $(DOMAIN) netgroup.byuser; \ 275 $(YPPUSH) -d $(DOMAIN) netgroup.byhost; \ 276 $(ECHO) "pushed netgroup"; \ 277 else \ 278 : ; \ 279 fi \ 280 else \ 281 $(ECHO) "couldn't find $(>)"; \ 282 fi 283 284 285amd.home.time: $(AMDDIR)/amd.home 286 -@if [ -f $(>) ]; then \ 287 $(SED) -e "s/#.*$$//" -e "/^$$/d" $(>) | \ 288 $(AWK) '{ \ 289 for (i = 1; i <= NF; i++) \ 290 if (i == NF) { \ 291 if (substr($$i, length($$i), 1) == "\\") { \ 292 printf("%s", substr($$i, 1, length($$i) - 1)); \ 293 } \ 294 else \ 295 printf("%s\n", $$i); \ 296 } \ 297 else \ 298 printf("%s ", $$i); \ 299 }' | \ 300 $(MAKEDBM) - amd.home; \ 301 $(TOUCH) $(@); \ 302 $(ECHO) "updated amd.home"; \ 303 if [ ! $(NOPUSH) ]; then \ 304 $(YPPUSH) -d $(DOMAIN) amd.home; \ 305 $(ECHO) "pushed amd.home"; \ 306 else \ 307 : ; \ 308 fi \ 309 else \ 310 $(ECHO) "couldn't find $(>)"; \ 311 fi 312 313 314aliases.time: $(DIR)/mail/aliases 315 -@if [ -f $(>) ]; then \ 316 $(CP) -p $(>) $(DOMAIN)-aliases; \ 317 $(SENDMAIL) -bi -oA$(PWD)/$(DOMAIN)-aliases; \ 318 $(MAKEDBM) -U $(DOMAIN)-aliases | $(MAKEDBM) - mail.aliases; \ 319 $(MKALIAS) mail.aliases mail.byaddr; \ 320 $(TOUCH) $(@); \ 321 $(RM) $(DOMAIN)-aliases.db $(DOMAIN)-aliases; \ 322 $(ECHO) "updated aliases"; \ 323 if [ ! $(NOPUSH) ]; then \ 324 $(YPPUSH) -d $(DOMAIN) mail.aliases; \ 325 $(YPPUSH) -d $(DOMAIN) mail.byaddr; \ 326 $(ECHO) "pushed aliases"; \ 327 else \ 328 : ; \ 329 fi \ 330 else \ 331 $(ECHO) "couldn't find $(>)"; \ 332 fi 333 334 335 336passwd: passwd.time 337group: group.time 338hosts: hosts.time 339ethers: ethers.time 340networks: networks.time 341rpc: rpc.time 342services: services.time 343protocols: protocols.time 344netid: netid.time 345netgroup: netgroup.time 346amd.home: amd.home.time 347aliases: aliases.time 348$(DIR)/passwd: 349$(DIR)/group: 350$(DIR)/hosts: 351$(DIR)/ethers: 352$(DIR)/networks: 353$(DIR)/rpc: 354$(DIR)/services: 355$(DIR)/protocols: 356$(DIR)/netid: 357$(DIR)/master.passwd: 358$(DIR)/netgroup: 359$(DIR)/mail/aliases: 360$(AMDDIR)/amd.home: 361