VERSION=0.2
CFLAGS=-Wall -g -O1
LDFLAGS=-g
DISTNAME=pam_dotfile-$(VERSION)
TARFILE=$(DISTNAME).tar.gz

all: pamtest pam_dotfile.so pam-dotfile-gen pam-dotfile-helper

pamtest: pamtest.o
	$(CC) -o $@ $^ $(LDFLAGS) -ldl -lpam -lpam_misc

pam_dotfile-pic.o: pam_dotfile.c
	$(CC) -fPIC $(CFLAGS) -c -o $@ $<

md5-pic.o: md5.c
	$(CC) -fPIC $(CFLAGS) -c -o $@ $<

md5util-pic.o: md5util.c
	$(CC) -fPIC $(CFLAGS) -c -o $@ $<

log-pic.o: log.c
	$(CC) -fPIC $(CFLAGS) -c -o $@ $<

common-pic.o: common.c
	$(CC) -fPIC $(CFLAGS) -c -o $@ $<

pam_dotfile.so: pam_dotfile-pic.o md5-pic.o md5util-pic.o log-pic.o common-pic.o
	ld -x --shared -o $@ $^ -ldl -lpam -lpam_misc

pam-dotfile-helper: pam-dotfile-helper.o md5.o md5util.o log.o common.o
	$(CC) -o $@ $^ $(LDFLAGS)

pam-dotfile-gen: pam-dotfile-gen.o md5.o md5util.o
	$(CC) -o $@ $^ $(LDFLAGS)

suid:
	chown root:root pam-dotfile-helper
	chmod 4755 pam-dotfile-helper

clean:
	rm -f *.o *.so *~ pamtest pam-dotfile-gen pam-dotfile-helper core

install: pam_dotfile.so pam-dotfile-gen pam-dotfile-helper
	install -g root -o root -m 644 pam_dotfile.so /lib/security
	install -g root -o root -m 4755 pam-dotfile-helper /sbin
	install -g root -o root -m 755 pam-dotfile-gen /usr/local/bin

deinstall:
	rm -f /lib/security/pam_dotfile.so /sbin/pam-dotfile-helper /usr/local/bin/pam-dotfile-gen

tar: clean
	mkdir ../$(DISTNAME)
	rmdir ../$(DISTNAME)
	cp -av `pwd` ../$(DISTNAME)
	rm -f ../$(TARFILE)
	tar czv -C .. -f ../$(TARFILE) $(DISTNAME)
	rm -rf ../$(DISTNAME)

.PHONY: all clean install deinstall suid tar
