SKEY	= ../skey
CFLAGS	= -O -DNONICE -DFACILITY=LOG_AUTH -DTABLE=\"/etc/login.access\" \
	$(XFLAGS) $(WIN_DEFS)
LIBS	= ../lib/libutil.a $(XLIBS)
SRCS	= login.c
OBJS	= login.o login_access.o login_fbtab.o $(WIN_OBJS)
DES_OBJ	= login_desrpc.o
KRB_OBJ	= login_kerberos.o
KRB_INC	= /some/where/kerberos_includes
KRB_LIB	= -L/some/where/kerberos_libs -lkrb -ldes
SVOBJS	= sysv_shadow.o sysv_environ.o sysv_default.o
SYSLIBS	=
SHELL	= /bin/sh
MAKE	= make

what:
	@echo Usage: make system-type. System types are:
	@echo bsdi-skey freebsd-skey hpux hpux-skey linux-skey
	@echo sunos4 sunos4-skey sunos5 sunos5-kerberos sunos5-skey
	@echo ultrix4 ultrix4-skey irix5-skey newsos4 newsos4-skey
	@exit 1;

all-skey: lib skey login try

all: lib login try

ultrix4-skey:
	@$(MAKE) all-skey SYS=ultrix4 XFLAGS="-DNIS -DSKEY -I$(SKEY)" \
	    XLIBS="$(SKEY)/libskey.a"

ultrix4:
	@$(MAKE) all SYS=$@ XFLAGS=-DNIS

freebsd-skey bsdi-skey bsd44-skey:
	@$(MAKE) all-skey SYS=bsd44 XFLAGS="-DSKEY -I$(SKEY) -DBSD44" \
	    XLIBS="$(SKEY)/libskey.a"

linux-skey:
	@echo if the shell complains try: make SHELL=/bin/ksh linux-skey
	@$(MAKE) all-skey SYS=linux XFLAGS="-DSKEY -I$(SKEY) -DLINUX" \
	    XLIBS="$(SKEY)/libskey.a"

sunos4-skey:
	@$(MAKE) all-skey SYS=sunos4 XFLAGS="-DNIS -DNO_SETENV \
	    -DDES_RPC -DSKEY -I$(SKEY)" OBJS="$(OBJS) $(DES_OBJ)" \
	    XLIBS="$(SKEY)/libskey.a" SYSLIBS="-lrpcsvc"

sunos4:
	@$(MAKE) all SYS=$@ XFLAGS="-DNIS -DNO_SETENV -DDES_RPC" \
	    OBJS="$(OBJS) $(DES_OBJ)" SYSLIBS="-lrpcsvc"

sunos5-skey:
	@$(MAKE) all-skey SYS=sunos5 XFLAGS="-DNIS -DNO_SETENV -DSYSV4 -DDES_RPC \
	    -DSKEY -I$(SKEY)" OBJS="$(OBJS) $(DES_OBJ) $(SVOBJS)" \
	    RANLIB=echo XLIBS="$(SKEY)/libskey.a" \
	    SYSLIBS="-lrpcsvc -lsocket -lnsl"

irix5-skey:
	@$(MAKE) all-skey SYS=irix5 XFLAGS="-DNIS -DNO_SETENV -DSYSV4 \
	    -DSKEY -I$(SKEY) -DIRIX5" OBJS="$(OBJS) $(DES_OBJ) $(SVOBJS)" \
	    RANLIB=echo XLIBS="$(SKEY)/libskey.a"

sunos5-kerberos:
	@$(MAKE) all SYS=sunos5 \
	    XFLAGS="-DNIS -DNO_SETENV -DSYSV4 -DKERBEROS -I$(KRB_INC)" \
	    OBJS="$(OBJS) $(KRB_OBJ) $(SVOBJS)" RANLIB=echo \
	    SYSLIBS="$(KRB_LIB) -lrpcsvc -lsocket -lnsl"

sunos5:
	@$(MAKE) all SYS=sunos5 XFLAGS="-DNIS -DNO_SETENV -DSYSV4 -DDES_RPC" \
	    OBJS="$(OBJS) $(DES_OBJ) $(SVOBJS)" RANLIB=echo \
	    SYSLIBS="-lrpcsvc -lsocket -lnsl"

hpux-skey:
	@$(MAKE) all-skey SYS=hpux \
	    XFLAGS="-DHPUX -DSKEY -I$(SKEY) -DNO_SETENV" \
	    XLIBS="$(SKEY)/libskey.a"

hpux:
	@$(MAKE) all SYS=hpux XFLAGS="-DHPUX -DNO_SETENV"

newsos4-skey:
	$(MAKE) all-skey SYS=newsos4 XFLAGS="-DNIS -DSKEY -I$(SKEY)" \
	    XLIBS="$(SKEY)/libskey.a"

newsos4:
	$(MAKE) all SYS=newsos4

lib:
	cd ../lib; $(MAKE) $(SYS)

skey:
	cd $(SKEY); $(MAKE) $(SYS)

login: ${LIBS} ${OBJS}
	${CC} -s -o $@ ${CFLAGS} ${OBJS} ${LIBS} ${SYSLIBS}

try:	try.c login_access.o
	${CC} -o $@ ${CFLAGS} try.c login_access.o ${SYSLIBS}

clean:
	rm -f *.o core login try
	cd ../lib; $(MAKE) $@
	cd $(SKEY); $(MAKE) $@

$(OBJS): Makefile
login.o sysv_default.o sysv_environ.o: sysv_default.h
login.o sysv_shadow.o: sysv_shadow.h
login.o: paths.h sys_defs.h
