# $Id: nss_cdb-Makefile,v 1.1 2003/11/03 18:23:42 mjt Exp $
# Makefile to create cdb-indexed files for nss_cdb module from
# /etc/group, /etc/passwd, /etc/shadow.
#
# This file is a part of tinycdb package by Michael Tokarev, mjt@corpit.ru.
# Public domain.

AWK = awk
SRC = .
DST = .

all: $(DST)/passwd.cdb $(DST)/group.cdb $(DST)/shadow.cdb

$(DST)/passwd.cdb: $(SRC)/passwd
	$(AWK) -F: '\
/^#/ { next } \
NF == 7 { print $$1" "$$0; print ":"$$3" "$$1 } \
' $(SRC)/passwd > $(DST)/passwd.tmpin
	cdb -c -m -t $(DST)/passwd.tmpcdb $(DST)/passwd.cdb $(DST)/passwd.tmpin
	rm -f $(DST)/passwd.tmpin

$(DST)/group.cdb: $(SRC)/group
	$(AWK) -F: '\
/^#/ { next } \
NF == 4 { print $$1" "$$0; print ":"$$3" "$$1 } \
' $(SRC)/group > $(DST)/group.tmpin
	cdb -c -m -t $(DST)/group.tmpcdb $(DST)/group.cdb $(DST)/group.tmpin
	rm -f $(DST)/group.tmpin

$(DST)/shadow.cdb: $(SRC)/shadow
	touch $(DST)/shadow.tmpin $(DST)/shadow.tmpcdb
	chmod 600 $(DST)/shadow.tmpin
	chmod --reference=$(SRC)/shadow $(DST)/shadow.tmpcdb
	chown --reference=$(SRC)/shadow $(DST)/shadow.tmpcdb
	$(AWK) -F: '\
/^#/ { next } \
NF == 9 { print $$1" "$$0 } \
' $(SRC)/shadow > $(DST)/shadow.tmpin
	cdb -c -m -t $(DST)/shadow.tmpcdb $(DST)/shadow.cdb $(DST)/shadow.tmpin
	rm -f $(DST)/shadow.tmpin
