.PHONY: all clean install package man

DESTDIR =
PREFIX=/usr
MANPATH = $(PREFIX)/share/man/man8

#CFLAGS = -O0 -g
CFLAGS = -Os -s -fno-aggressive-loop-optimizations
LDFLAGS = -Wl,--as-needed
AUTH =

ifeq ($(AUTH),)
	xlogin_auth = xlogin-auth_shadow.o
else ifeq ($(AUTH),shadow)
	xlogin_auth = xlogin-auth_shadow.o
else
	xlogin_auth = xlogin-auth_ldap.o
endif

all: xlogin xlogin-xdmcpserver xlogin-rootjpeg xlogin-makeidentity xlogin-readid man

### binaries
xlogin-rootjpeg: xlogin-rootjpeg.o
	$(CC) -o $@ $^ $(LDFLAGS) -lX11 -lm

xlogin-makeidentity: xlogin-makeidentity.o xlogin-encdec.o

xlogin-readid: xlogin-readid.o xlogin-encdec.o

xlogin-xdmcpserver: xlogin-xdmcpserver.o

xlogin: xlogin.o xlogin-encdec.o $(xlogin_auth) 
	$(CC) -o $@ $^ $(LDFLAGS) -lX11 -lcrypt

### objects
xlogin.o: xlogin.c xlogin.h key.h

xlogin-makeidentity.o: xlogin-makeidentity.c xlogin.h key.h

xlogin-readid.o: xlogin-readid.c xlogin.h key.h

xlogin-xdmcpserver.o: xlogin-xdmcpserver.c 

xlogin-encdec.o: xlogin-encdec.c xlogin.h key.h

xlogin-auth_shadow.o: xlogin-auth_shadow.c xlogin.h

xlogin-auth_ldap.o: xlogin-auth_ldap.c xlogin.h

### man pages
man: 
	-make -C man

### clean
clean:
	rm -f xlogin xlogin-xdmcpserver xlogin-rootjpeg xlogin-readid \
	      xlogin-makeidentity *.o

### install
install:
	# data files
	install -dm755 $(DESTDIR)/etc/xlogin/desktops
	install -dm755 $(DESTDIR)/etc/xlogin/backgrounds
	install -dm755 $(DESTDIR)/etc/xlogin/identity
	install -m644 backgrounds/* $(DESTDIR)/etc/xlogin/backgrounds
	install -m755 desktops/xterm $(DESTDIR)/etc/xlogin/desktops
	
	# binaries
	install -dm755 $(DESTDIR)$(PREFIX)/sbin
	install -m755 xlogin $(DESTDIR)$(PREFIX)/sbin
	install -m755 xlogin-xdmcpserver $(DESTDIR)$(PREFIX)/sbin
	install -m755 xlogin-makeidentity $(DESTDIR)$(PREFIX)/sbin
	install -m755 xlogin-rootjpeg $(DESTDIR)$(PREFIX)/sbin
	
	# manpages
	install -dm755 $(DESTDIR)$(MANPATH)
	install -m644 man/*.8 $(DESTDIR)$(MANPATH)

### build distribution package
package: clean
	-rm -rf /tmp/xlogin-fossil
	-mkdir -p /tmp/xlogin-fossil
	-cp  -a * /tmp/xlogin-fossil
	-fossil info > /tmp/xlogin-fossil/fossil-version
	-echo Version $(shell date +%F) > /tmp/xlogin-fossil/VERSION
	-rm -f /tmp/xlogin-fossil/auth*
	-tar -C /tmp -cjvf ../xlogin-$(shell date +%F).tar.bz2 xlogin-fossil
	-rm -rf /tmp/xlogin-fossil

