# diab will not compile rcp
CC=/usr/bin/cc
CFLAGS = -O -I/bsd -Dsignal=_sigset -Dlongjmp=siglongjmp
CVFLAGS = -O -Dsignal=_sigset -Dlongjmp=siglongjmp
LDFLAGS = -s
ROOT = /
INSDIR = $(ROOT)
BINS = telnet rlogin ftp/ftp rcp rsh ifinit softnetint inetd rshd telnetd rlogind ftpd/ftpd rexecd arp route ifconfig ping named/named sendmail/sendmail netstat/netstat talk/talk talkd/talkd finger fingerd timed/timed netreset

all: $(BINS)

tftp/tftp: tftp/tftp.c
	cd tftp; $(MAKE) "CC=$(CC)"

tftpd/tftpd: tftpd/tftpd.c
	cd tftpd; $(MAKE) "CC=$(CC)"

telnet: telnet.c
	$(CC) $(CVFLAGS) -o telnet telnet.c $(LDFLAGS)

telnetd: telnetd.c
	$(CC) $(CFLAGS) -o telnetd telnetd.c -lbsd $(LDFLAGS)

rlogin: rlogin.c
	$(CC) $(CVFLAGS) -o rlogin rlogin.c $(LDFLAGS)

rlogind: rlogind.c
	$(CC) $(CFLAGS) -o rlogind rlogind.c -lbsd $(LDFLAGS)

ifconfig: ifconfig.c
	$(CC) $(CFLAGS) -o ifconfig ifconfig.c -lbsd $(LDFLAGS)

ping: ping.c
	$(CC) $(CFLAGS) -o ping ping.c -lbsd $(LDFLAGS)

rcp: rcp.c
	$(CC) $(CFLAGS) -o rcp rcp.c -lbsd $(LDFLAGS)

arp: arp.c
	$(CC) $(CFLAGS) -o arp arp.c -lbsd $(LDFLAGS)

finger: finger.c
	$(CC) $(CFLAGS) -o finger finger.c -lbsd $(LDFLAGS)

fingerd: fingerd.c
	$(CC) $(CFLAGS) -o fingerd fingerd.c -lbsd $(LDFLAGS)

route: route.c
	$(CC) $(CFLAGS) -o route route.c -lbsd $(LDFLAGS)

rexecd: rexecd.c
	$(CC) $(CFLAGS) -Dpipe=bsdpipe -o rexecd rexecd.c -lbsd $(LDFLAGS)

rsh: rsh.c
	$(CC) $(CFLAGS) -o rsh rsh.c -lbsd $(LDFLAGS)

rshd: rshd.c
	$(CC) -Dpipe=bsdpipe $(CFLAGS) -o rshd rshd.c -lbsd $(LDFLAGS)

inetd: inetd.c
	$(CC) -Dsigpause=bsdsigpause $(CFLAGS) -o inetd inetd.c -lbsd $(LDFLAGS)

ifinit: ifinit.c
	$(CC) $(CFLAGS) -o ifinit ifinit.c -lbsd $(LDFLAGS)

softnetint: softnetint.c
	$(CC) $(CFLAGS) -o softnetint softnetint.c -lbsd $(LDFLAGS)

netreset: netreset.c
	$(CC) $(CFLAGS) -o netreset netreset.c -lbsd $(LDFLAGS)

ftp/ftp: FRC
	cd ftp; $(MAKE) "CC=$(CC)"

talk/talk: FRC
	cd talk; $(MAKE) "CC=$(CC)"

talkd/talkd: FRC
	cd talkd; $(MAKE) "CC=$(CC)"

named/named: FRC
	cd named; $(MAKE) "CC=$(CC)"

sendmail/sendmail: FRC
	cd sendmail; $(MAKE) "CC=$(CC)"

netstat/netstat: FRC
	cd netstat; $(MAKE) "CC=$(CC)"

ftpd/ftpd: FRC
	cd ftpd; $(MAKE) "CC=$(CC)"

timed/timed: FRC
	cd timed; $(MAKE) "CC=$(CC)"

clean clobber: FRC
	rm -f $(BINS) *.o
	cd ftp; $(MAKE) clean
	cd ftpd; $(MAKE) clean
	cd netstat; $(MAKE) clean
	cd sendmail; $(MAKE) clean
	cd named; $(MAKE) clean
	cd talk; $(MAKE) clean
	cd talkd; $(MAKE) clean
	cd timed; $(MAKE) clean

FRC:

install: all
	if [ ! -d $(INSDIR) ]; then mkdir $(INSDIR); fi
	if [ ! -d $(INSDIR)/etc ]; then mkdir $(INSDIR)/etc; fi
	if [ ! -d $(INSDIR)/usr ]; then mkdir $(INSDIR)/usr; fi
	if [ ! -d $(INSDIR)/usr/bin ]; then mkdir $(INSDIR)/usr/bin; fi
	if [ ! -d $(INSDIR)/usr/lib ]; then mkdir $(INSDIR)/usr/lib; fi

	cd $(INSDIR)/usr/bin; rm -f telnet rlogin ftp rcp rsh arp route netstat\
				mailq newaliases
	cd $(INSDIR)/usr/lib; rm -f sendmail named

	cd $(INSDIR)/etc; rm -f ifinit ifconfig softnetint inetd rexecd rshd \
	telnetd rlogind ftpd ping ntalkd fingerd timed timedc netreset

	mcs -d  ifinit ifconfig softnetint inetd rexecd rshd telnetd rlogind \
	ftpd/ftpd ping sendmail/sendmail netstat/netstat talk/talk \
	talkd/talkd finger fingerd timed/timed timed/timedc netreset

	cp named/opus.boot named/opus.rev named/opus.hosts /etc
	cp telnet rlogin ftp/ftp rcp arp route rsh  netstat/netstat  finger \
	talk/talk tftp/tftp $(INSDIR)/usr/bin

	cp sendmail/sendmail $(INSDIR)/usr/lib
	cp /dev/null $(INSDIR)/usr/lib/sendmail.fc
	cp /dev/null $(INSDIR)/usr/lib/sendmail.st
	cp sendmail/opusroot.cf $(INSDIR)/usr/lib
	cp sendmail/opusleaf.cf $(INSDIR)/usr/lib
	cp sendmail/sendmail.hf $(INSDIR)/usr/lib/sendmail.hf
	chmod 644 $(INSDIR)/usr/lib/sendmail.hf
	chmod 644 $(INSDIR)/usr/lib/sendmail.fc
	chmod 666 $(INSDIR)/usr/lib/sendmail.st
	chgrp bin $(INSDIR)/usr/lib/sendmail.st
	chown bin $(INSDIR)/usr/lib/sendmail.st
	chgrp bin $(INSDIR)/usr/lib/sendmail.fc
	chown bin $(INSDIR)/usr/lib/sendmail.fc
	chgrp bin $(INSDIR)/usr/lib/sendmail.hf
	chown bin $(INSDIR)/usr/lib/sendmail.hf

	cp ifinit ifconfig softnetint inetd rexecd rshd telnetd rlogind \
	ftpd/ftpd ping talkd/ntalkd fingerd timed/timed tftpd/tftpd \
	netreset timed/timedc $(INSDIR)/etc

	cp named/named $(INSDIR)/usr/lib

	cd $(INSDIR)/usr/bin; chmod 755 telnet rlogin ftp rcp arp route rsh \
	netstat talk finger

	cd $(INSDIR)/usr/bin; chown bin telnet rlogin ftp rcp arp route rsh \
	netstat talk finger

	cd $(INSDIR)/usr/bin; chgrp bin telnet rlogin ftp rcp arp route rsh \
	netstat talk finger

	cd $(INSDIR)/usr/lib; chmod 6755 sendmail; chmod 755 named
	cd $(INSDIR)/usr/lib; chown root sendmail; chown bin named
	cd $(INSDIR)/usr/lib; chgrp bin sendmail; chgrp bin named
	ln /usr/lib/sendmail /usr/ucb/mailq
	ln /usr/lib/sendmail /usr/ucb/newaliases

	cd $(INSDIR)/etc; chmod 755 ifinit ifconfig softnetint inetd rexecd \
	netreset rshd telnetd rlogind ftpd ping ntalkd fingerd timed
	cd $(INSDIR)/etc; chmod 4511 timedc
	cd $(INSDIR)/etc; chown root timedc
	cd $(INSDIR)/etc; chgrp bin timedc

	cd $(INSDIR)/etc; chown bin ifinit ifconfig softnetint inetd rexecd \
	netreset rshd telnetd rlogind ftpd ping ntalkd fingerd timed
	cd $(INSDIR)/etc; chgrp bin ifinit ifconfig softnetint inetd rexecd \
	netreset rshd telnetd rlogind ftpd ping ntalkd fingerd timed
	
f:
	cd $(INSDIR); find * -type f -print | cpio -ocvdumB > /dev/rflpa	
