CFLAGS	= -I$(UTIL) -O -DNONICE -DFACILITY=LOG_AUTH \
	-DTABLE=\"/etc/login.access\" $(XFLAGS) $(WIN_DEFS)
LIBS	= $(UTIL)/libutil.a $(XLIBS)
SRCS	= login.c
OBJS	= login.o login_access.o login_fbtab.o $(WIN_OBJS) $(XOBJS)
UTIL	= ../lib
SKEY	= ../skey
SKEYDEFS= -DSKEY -I$(SKEY)
SKEYLIBS= $(SKEY)/libskey.a
SNK	= ../snk
DES	= ../des
SNKDEFS	= -DSNK -I$(SNK)
SNKLIBS	= $(SNK)/libsnk.a ../des/libdes.a
DES_OBJ	= login_desrpc.o
KRB_OBJ	= login_kerberos.o
KRB_INC	= /some/where/kerberos_includes
KRB_LIB	= /some/where/kerberos_libs
KRBDEFS	= -DKERBEROS -I$(KRB_INC)
KRBLIBS	= $(KRB_LIB)/libkrb.a $(KRB_LIB)/libdes.a
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 bsdi-snk freebsd-skey freebsd-snk hpux9 hpux9-skey
	@echo hpux9-snk irix5-skey irix5-snk linux-skey linux-snk newsos4
	@echo newsos4-skey newsos4-snk decosf1-skey osf1-snk sunos4 sunos4-skey
	@echo sunos4-snk sunos5 sunos5-kerberos sunos5-skey sunos5-snk
	@echo ultrix4 ultrix4-skey ultrix4-snk
	@exit 1;

all: lib login 

all-skey: skey all

all-snk: des snk all

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

ultrix4-skey:
	@$(MAKE) all-skey SYS=ultrix4 \
	    XFLAGS="-DULTRIX4 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)"

ultrix4-snk:
	@$(MAKE) all-snk SYS=ultrix4 \
	    XFLAGS="-DULTRIX4 $(SNKDEFS)" XLIBS="$(SNKLIBS)"

bsdi-skey bsd44-skey:
	@$(MAKE) all-skey SYS=bsd44 XFLAGS="-DBSD44 $(SKEYDEFS)" \
	    XLIBS="$(SKEYLIBS)"

bsdi-snk bsd44-snk:
	@$(MAKE) all-snk SYS=bsd44 XFLAGS="-DBSD44 $(SNKDEFS)" \
	    XLIBS="$(SNKLIBS)"

freebsd-skey:
	@$(MAKE) all-skey SYS=bsd44 XFLAGS="-DBSD44 $(SKEYDEFS)" \
	    XLIBS="$(SKEYLIBS)" SYSLIBS=-lcrypt

freebsd-snk:
	@$(MAKE) all-snk SYS=bsd44 XFLAGS="-DBSD44 $(SNKDEFS)" \
	    XLIBS="$(SNKLIBS)" SYSLIBS=-lcrypt

linux-skey:
	@echo if the shell complains try: make SHELL=/bin/ksh linux-skey
	@$(MAKE) all-skey SYS=linux XFLAGS="-DLINUX $(SKEYDEFS)" \
	    XLIBS="$(SKEYLIBS)"

linux-snk:
	@echo if the shell complains try: make SHELL=/bin/ksh linux-snk
	@$(MAKE) all-snk SYS=linux XFLAGS="-DLINUX $(SNKDEFS)" \
	    XLIBS="$(SNKLIBS)"

sunos4:
	@$(MAKE) all SYS=$@ XFLAGS="-DSUNOS4" \
	    XOBJS="$(DES_OBJ)" SYSLIBS="-lrpcsvc"

sunos4-skey:
	@$(MAKE) all-skey SYS=sunos4 XFLAGS="-DSUNOS4 $(SKEYDEFS)" \
	    XOBJS="$(DES_OBJ)" \
	    XLIBS="$(SKEYLIBS)" SYSLIBS="-lrpcsvc"

sunos4-snk:
	@make all-snk SYS=sunos4 XFLAGS="-DSUNOS4 $(SNKDEFS)" \
	    XOBJS="$(DES_OBJ)" \
	    XLIBS="$(SNKLIBS)" SYSLIBS="-lrpcsvc"

sunos5:
	@$(MAKE) all SYS=sunos5 XFLAGS="-DSYSV4 -DSUNOS5" \
	    XOBJS="$(DES_OBJ) $(SVOBJS)" RANLIB=echo \
	    SYSLIBS="-lrpcsvc -lsocket -lnsl"

sunos5-skey:
	@$(MAKE) all-skey SYS=sunos5 XFLAGS="-DSYSV4 -DSUNOS5 $(SKEYDEFS)" \
	    XOBJS="$(DES_OBJ) $(SVOBJS)" \
	    RANLIB=echo XLIBS="$(SKEYLIBS)" \
	    SYSLIBS="-lrpcsvc -lsocket -lnsl"

sunos5-snk:
	@make all-snk SYS=sunos5 XFLAGS="-DSYSV4 -DSUNOS5 $(SNKDEFS)" \
	    XOBJS="$(DES_OBJ) $(SVOBJS)" \
	    RANLIB=echo XLIBS="$(SNKLIBS)" \
	    SYSLIBS="-lrpcsvc -lsocket -lnsl" \
	    OPTIM="-xO4"

sunos5-kerberos:
	@$(MAKE) all SYS=sunos5 XFLAGS="-DSYSV4 -DSUNOS5 $(KRBDEFS)" \
	    XOBJS="$(KRB_OBJ) $(SVOBJS)" 
	    RANLIB=echo XLIBS="$(KRBLIBS)" \
	    SYSLIBS="-lrpcsvc -lsocket -lnsl"

irix5-skey:
	@$(MAKE) all-skey SYS=irix5 XFLAGS="-DIRIX5 -DSYSV4 $(SKEYDEFS)" \
	    XOBJS="$(SVOBJS)" \
	    RANLIB=echo XLIBS="$(SKEYLIBS)"

irix5-snk:
	@$(MAKE) all-snk SYS=irix5 XFLAGS="-DIRIX5 -DSYSV4 $(SNKDEFS)" \
	    XOBJS="$(DES_OBJ) $(SVOBJS)" \
	    RANLIB=echo XLIBS="$(SNKLIBS)"

irix4-skey:
	@$(MAKE) all-skey SYS=irix4 XFLAGS="-cckr -DIRIX4 -DSYSV3 $(SKEYDEFS)" \
	    RANLIB=echo XLIBS="$(SKEYLIBS)" SYSLIBS="-lsun"

irix4-snk:
	@$(MAKE) all-snk SYS=irix4 XFLAGS="-cckr -DIRIX4 -DSYSV3 $(SNKDEFS)" \
	    RANLIB=echo XLIBS="$(SNKLIBS)" SYSLIBS="-lsun"

hpux9-skey:
	@$(MAKE) all-skey SYS=hpux9 XFLAGS="-DHPUX9 $(SKEYDEFS)" \
	    XOBJS="sysv_environ.o" XLIBS="$(SKEYLIBS)"

hpux9-snk:
	@$(MAKE) all-snk SYS=hpux9 XFLAGS="-DHPUX9 $(SNKDEFS)" \
	    XOBJS="sysv_environ.o" XLIBS="$(SNKLIBS)"

hpux9:
	@$(MAKE) all SYS=hpux9 XFLAGS="-DHPUX9" XOBJS="sysv_environ.o"

newsos4-skey:
	$(MAKE) all-skey SYS=newsos4 XFLAGS="-DNEWSOS4 $(SKEYDEFS)" \
	    XLIBS="$(SKEYLIBS)"

newsos4-snk:
	$(MAKE) all-snk SYS=newsos4 XFLAGS="-DNEWSOS4 $(SNKDEFS)" \
	    XLIBS="$(SNKLIBS)"

newsos4:
	$(MAKE) all SYS=newsos4

decosf1-skey:
	@$(MAKE) all-skey SYS=decosf1 XFLAGS="-DDECOSF1 $(SKEYDEFS)" \
	    XLIBS="$(SKEYLIBS)"

decosf1-snk:
	@$(MAKE) all-snk SYS=decosf1 XFLAGS="-DDECOSF1 $(SNKDEFS)" \
	    XLIBS="$(SNKLIBS)"

lib:
	cd $(UTIL); $(MAKE) $(SYS)

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

snk:
	cd $(SNK); make $(SYS)

des:
	cd $(DES); make OPTIM="$(OPTIM)"

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

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

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

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