NROFF=nroff -man

default: programs

programs: anonftpd anonftpstat

man: anonftpd.0 anonftpstat.0 anonftplog.0

anonftpd.0: anonftpd.8
	$(NROFF) < anonftpd.8 > anonftpd.0

anonftpstat.0: anonftpstat.8
	$(NROFF) < anonftpstat.8 > anonftpstat.0

anonftplog.0: anonftplog.5
	$(NROFF) < anonftplog.5 > anonftplog.0

setup: ftp-setup systype ftp-home programs man
	./ftp-setup "`cat systype`" "`./ftp-home`"

ftp-setup: warn-auto.sh ftp-setup.sh
	cat warn-auto.sh ftp-setup.sh > ftp-setup
	chmod 755 ftp-setup

ftp-home: load ftp-home.o
	./load ftp-home

ftp-home.o: compile ftp-home.c conf-home.h
	./compile ftp-home.c

anonftpstat: load anonftpstat.o libstr.a
	./load anonftpstat libstr.a

anonftpstat.o: compile anonftpstat.c byte.h
	./compile anonftpstat.c

anonftpd: load anonftpd.o \
telnet.o doit.o ftp.o conn.o err.o out.o wd.o \
log.o get.o sys.o scan6.o fmt6.o \
ndelay.o libstr.a libfs.a
	./load anonftpd \
	telnet.o doit.o ftp.o conn.o err.o out.o wd.o \
	log.o get.o sys.o scan6.o fmt6.o \
	ndelay.o libstr.a libfs.a

anonftpd.o: compile anonftpd.c \
select.h telnet.h ftp.h sys.h conn.h scan.h err.h log.h conf-home.h
	./compile anonftpd.c

telnet.o: compile telnet.c telnet.h doit.h
	./compile telnet.c

doit.o: compile doit.c doit.h ftp.h err.h
	./compile doit.c

ftp.o: compile ftp.c \
ftp.h conn.h out.h wd.h get.h log.h sys.h scan6.h fmt6.h err.h select.h
	./compile ftp.c

get.o: compile get.c \
get.h log.h sys.h fmt6.h fmt.h str.h byte.h direntry.h
	./compile get.c

log.o: compile log.c log.h conn.h sys.h
	./compile log.c

wd.o: compile wd.c wd.h
	./compile wd.c

out.o: compile out.c out.h sys.h str.h
	./compile out.c

err.o: compile err.c err.h out.h
	./compile err.c

conn.o: compile conn.c conn.h ndelay.h
	./compile conn.c

sys.o: compile sys.c sys.h
	./compile sys.c

fmt6.o: compile fmt6.c fmt6.h fmt.h
	./compile fmt6.c

scan6.o: compile scan6.c scan6.h scan.h
	./compile scan6.c

shar: FILES
	shar `cat FILES` > anonftpd.shar
	chmod 400 anonftpd.shar


makelib: make-commands systype
	./make-commands "`cat ./systype`" makelib > makelib
	chmod 755 makelib

loaddns: make-commands systype
	./make-commands "`cat ./systype`" loaddns > loaddns
	chmod 755 loaddns

load: make-commands systype
	./make-commands "`cat ./systype`" load > load
	chmod 755 load

compile: make-commands systype
	./make-commands "`cat ./systype`" compile > compile
	chmod 755 compile

make-commands: make-cmds.sh conf-cc.sh warn-auto.sh
	cat warn-auto.sh conf-cc.sh make-cmds.sh > make-commands
	chmod 755 make-commands

systype: find-systype trycpp.c
	./find-systype > systype

find-systype: find-systype.sh conf-cc.sh warn-auto.sh
	cat warn-auto.sh conf-cc.sh find-systype.sh > find-systype
	chmod 755 find-systype

select.h: compile trysysel.c select.h1 select.h2
	( ./compile trysysel.c >/dev/null 2>&1 \
	&& cat select.h2 || cat select.h1 ) > select.h

libfs.a: makelib \
fmt_str.o fmt_uint.o fmt_ulong.o \
scan_ulong.o
	./makelib libfs.a \
	fmt_str.o fmt_uint.o fmt_ulong.o \
	scan_ulong.o

fmt_str.o: compile fmt_str.c fmt.h
	./compile fmt_str.c

fmt_uint0.o: compile fmt_uint0.c fmt.h
	./compile fmt_uint0.c

fmt_uint.o: compile fmt_uint.c fmt.h
	./compile fmt_uint.c

fmt_ulong.o: compile fmt_ulong.c fmt.h
	./compile fmt_ulong.c

scan_ulong.o: compile scan_ulong.c scan.h
	./compile scan_ulong.c

libstr.a: makelib \
str_len.o str_diff.o str_cpy.o \
byte_chr.o byte_diff.o 
	./makelib libstr.a \
	str_len.o str_diff.o str_cpy.o \
	byte_chr.o byte_diff.o 

byte_chr.o: compile byte_chr.c byte.h
	./compile byte_chr.c

byte_diff.o: compile byte_diff.c byte.h
	./compile byte_diff.c

str_len.o: compile str_len.c str.h
	./compile str_len.c

str_cpy.o: compile str_cpy.c str.h
	./compile str_cpy.c

str_diff.o: compile str_diff.c str.h
	./compile str_diff.c

direntry.h: compile trydrent.c direntry.h1 direntry.h2
	( ./compile trydrent.c >/dev/null 2>&1 \
	&& cat direntry.h2 || cat direntry.h1 ) > direntry.h

ndelay.o: compile ndelay.c ndelay.h
	./compile ndelay.c
