CFLAGS	= -I$(UTIL) -O -DNO_STATCMD -DSTATS -DMOTD $(XFLAGS) $(PASV_WINDOW) \
	-DFACILITY=LOG_AUTH
OBJS	= ftpd.o ftpcmd.o glob.o $(WTMP).o popen.o vers.o $(XOBJ)
LIBS	= $(UTIL)/libutil.a $(XLIBS)
MAN	= all.8
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
SHELL	= /bin/sh
MAKE	= make

what:
	@echo Usage: make system-type. System types are:
	@echo freebsd-skey freebsd-snk irix5-skey irix5-snk linux-skey
	@echo linux-snk newsos4-skey newsos4-snk decosf1-skey osf1-snk
	@echo sunos4 sunos4-skey sunos4-snk sunos5 sunos5-skey sunos5-snk
	@echo ultrix4 ultrix4-skey ultrix4-snk hpux9-skey hpux9-snk
	@exit 1;

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

ultrix4-skey:
	@$(MAKE) all-skey SYS=ultrix4 WTMP=logwtmp XOBJ="skey-stuff.o" \
	    XFLAGS="-DULTRIX4 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)"

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

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

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

sunos4:
	@$(MAKE) all SYS=sunos4 WTMP=logwtmp XFLAGS="-DSUNOS4"

sunos4-skey:
	@$(MAKE) all-skey SYS=sunos4 WTMP=logwtmp XOBJ=skey-stuff.o \
	    XFLAGS="-DSUNOS4 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)"

sunos4-snk:
	@$(MAKE) all-snk SYS=sunos4 WTMP=logwtmp \
	    XFLAGS="-DSUNOS4 $(SNKDEFS)" XLIBS="$(SNKLIBS)"

freebsd-skey:
	@$(MAKE) all-skey SYS=bsd44 WTMP=logwtmp XOBJ=skey-stuff.o \
	    XFLAGS="-DBSD44 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)" \
	    SYSLIBS=-lcrypt

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

newsos4-skey:
	@$(MAKE) all-skey SYS=newsos4 WTMP=logwtmp XOBJ=skey-stuff.o \
	    XFLAGS="-DNEWSOS4 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)"

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

hpux9-skey:
	@$(MAKE) all-skey SYS=hpux9 WTMP=logwtmp XOBJ="skey-stuff.o" \
	    XFLAGS="-DHPUX9 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)"

hpux9-snk:
	@$(MAKE) all-snk SYS=hpux9 WTMP=logwtmp \
	    XFLAGS="-DHPUX9 $(SNKDEFS)" XLIBS="$(SNKLIBS)"

decosf1-skey:
	@$(MAKE) all-skey SYS=decosf1 WTMP=logwtmp XOBJ="skey-stuff.o" \
	    XFLAGS="-DDECOSF1 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)"

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

sunos5:
	@$(MAKE) all SYS=sunos5 WTMP=sysv4wtmp \
	    XFLAGS="-DSYSV4 -DSUNOS5" SYSLIBS="-lsocket -lnsl"

sunos5-skey:
	@$(MAKE) all-skey SYS=sunos5 WTMP=sysv4wtmp XOBJ="skey-stuff.o" \
	    XFLAGS="-DSYSV4 -DSUNOS5 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)" \
	    SYSLIBS="-lsocket -lnsl"

sunos5-snk:
	@make all-snk SYS=sunos5 WTMP=sysv4wtmp OPTIM="-xO4" \
	    XFLAGS="-DSYSV4 -DSUNOS5 $(SNKDEFS)" XLIBS="$(SNKLIBS)" \
	    SYSLIBS="-lsocket -lnsl"

irix5-skey:
	@$(MAKE) all-skey SYS=irix5 WTMP=sysv4wtmp XOBJ="skey-stuff.o" \
	    XFLAGS="-DIRIX5 -DSYSV4 $(SKEYDEFS)" XLIBS="$(SKEYLIBS)"

irix5-snk:
	@$(MAKE) all-snk SYS=irix5 WTMP=sysv4wtmp \
	    XFLAGS="-DIRIX5 -DSYSV4 $(SNKDEFS)" XLIBS="$(SNKLIBS)"

all:	util ftpd

all-skey: skey all

all-snk: des snk all

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

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

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

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

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

vers.o: ftpd.c ftpcmd.y
	sh newvers.sh
	${CC} ${CFLAGS} -c vers.c

clean:
	rm -f *.o ftpd core ftpcmd.c y.tab.?
	cd $(SKEY); $(MAKE) clean
	cd $(SNK); $(MAKE) clean
	cd $(UTIL); $(MAKE) clean

ftpd.o: $(UTIL)/sys_defs.h
