#
# SSLtelnet    - this is an implementation of ftp and ftpd using SSLeay
#
#
# - You may want to change SSLTOP depending on where you have SSL installed
# - You will probably have to choose which of the OS sections to
#   activate so that the right compiler switches and libraries are linked
# - if you don't want SOCKS support then unset sockslib and remove
#   the -DUSE_SOCKS from the CC line
#
# - if you want to use sralogin rather than login (perhaps your login
#   doesn't handle the -f option ... then define USE_SRALOGIN otherwise
#   telnetd will use /bin/login (see telnetd/pathnames.h). Support for
#   the -f option is *required* if you want to use "-z certsok" 
#
# Then all that should be required is a straight:
# make install
#
# 06-Jun-95 tjh    original extraction from my SRA source tree into
# ................ this separate package
#
# Tim Hudson
# tjh@cryptsoft.com
#
#

VERSION = 0.11
DIRECTORY=SSLtelnet-$(VERSION)
TARFILE=$(DIRECTORY).tar
COMPRESS=gzip

GENERAL=Makefile README VERSION TODO BUGS

#
#/* 
# * The modifications to support SSLeay were done by Tim Hudson
# * tjh@mincom.oz.au
# *
# * You can do whatever you like with these patches except pretend that
# * you wrote them. 
# *
# * Email ssl-users-request@mincom.oz.au to get instructions on how to
# * join the mailing list that discusses SSLeay and also these patches.
# *
# */
#

# the location where SSLeay is installed ... 
# - expect a include and lib directory under here 
SSLTOP=/usr/local/ssl

INSTALLTOP=$(SSLTOP)

SUBDIRS= lib telnet telnetd

# Decide if you want SOCKS support (which I haven't put into 
# the ftp client yet)
sockslib=
socksflags=
#sockslib=/usr/local/lib/libsocks.a 
#socksflags=-DUSE_SOCKS

# SunOX 4.x (Solaris 1.x)
#CC= cc -DSUNOS -DTERMCAP $(socksflags)
#LDADD= $(sockslib) ../lib/libbsd/libbsd.a -ltermcap

# SunOS 5.x (Solaris 2.x)
#CC = cc -g -DSUNOS -DSOLARIS2 -DUSE_SHADOW -DEAY_DES $(socksflags)
# the extra libbsd crud is only there for inet_aton for GCC and
# I really do not want to think too hard about it --tjh
#LDADD= $(sockslib) -lresolv -lsocket -lnsl ../lib/libbsd/libbsd.a -ltermcap

# IRIX 5.x
#CC = cc -DIRIX -DEAY_DES $(socksflags)
#LDADD=$(sockslib) -ltermcap

# HPUX 9.x
#CC = cc -DHPUX -DEAY_DES $(socksflags) -Dconst=
#LDADD=$(sockslib) -ltermcap

# DGUX 5.x
#CC = cc -DDGUX -DEAY_DES $(socksflags) -Dconst=
#LDADD=$(sockslib) -ltermcap -lcurses
  
# uncomment the next two lines for linux
CC = gcc -DLINUX -DTERMIOS $(socksflags)
LDADD = $(sockslib) -lbsd -lncurses

##OLD Linux stuff
#CC = gcc -DLINUX -DUSE_SHADOW $(socksflags) 
#LDADD = $(sockslib) -lshadow
#CC = gcc -DLINUX -DTERMCAP $(socksflags) 
#LDADD = $(sockslib)  -ltermcap

#BSD386
#CC = gcc -DBSD386 -DTERMCAP $(socksflags)
#LDADD = -ltermcap $(sockslib) 
  
all:
	@-mkdir bin 2>/dev/null
	@for i in $(SUBDIRS); \
	    do (cd $$i && echo $$i && $(MAKE) CC="$(CC)" SSLTOP="$(SSLTOP)" LDADD="$(LDADD)") || exit; \
	done

lib: /dev/null
	@for i in "lib" ; \
	do (cd $$i && echo $$i && $(MAKE) CC="$(CC)" SSLTOP="$(SSLTOP)" LDADD="$(LDADD)") || exit; \
	done

ftp: lib /dev/null
	@for i in "ftp" ; \
	do (cd $$i && echo $$i && $(MAKE) CC="$(CC)" SSLTOP="$(SSLTOP)" LDADD="$(LDADD)") || exit; \
	done

ftpd: lib /dev/null
	@for i in "ftpd" ; \
	do (cd $$i && echo $$i && $(MAKE) CC="$(CC)" SSLTOP="$(SSLTOP)" LDADD="$(LDADD)") || exit; \
	done


telnet: lib /dev/null
	@for i in "telnet" ; \
	do (cd $$i && echo $$i && $(MAKE) CC="$(CC)" SSLTOP="$(SSLTOP)" LDADD="$(LDADD)") || exit; \
	done


telnetd: lib /dev/null
	@for i in "telnetd" ; \
	do (cd $$i && echo $$i && $(MAKE) CC="$(CC)" SSLTOP="$(SSLTOP)" LDADD="$(LDADD)") || exit; \
	done

login: lib /dev/null
	@for i in "login" ; \
	do (cd $$i && echo $$i && $(MAKE) CC="$(CC)" SSLTOP="$(SSLTOP)" LDADD="$(LDADD)") || exit; \
	done

clean: /dev/null
	@for i in $(SUBDIRS) login; \
		do (cd $$i && echo $$i && $(MAKE) clean) || exit; \
		if [ -f bin/$$i ]; then \
		    rm bin/$$i ;\
		fi; \
	done

tar:    clean
	(cd ..; tar cf $(TARFILE) $(DIRECTORY); /bin/rm -f $(TARFILE).Z $(TARFILE).gz >/dev/null 2>&1 ; $(COMPRESS) $(TARFILE) )

install: telnet telnetd /dev/null
	@-mkdir -p $(INSTALLTOP)/bin 2>/dev/null
	cp bin/telnet $(INSTALLTOP)/bin/telnet
	chmod 755 $(INSTALLTOP)/bin/telnet
	cp bin/telnetd $(INSTALLTOP)/bin/telnetd
	chmod 755 $(INSTALLTOP)/bin/telnetd
	@echo "*****************************************************"
	@echo "* Do not forget to make the certificate for telnetd *"
	@echo "* either manually or via \"make certificate\"       *"
	@echo "*****************************************************"

certificate:
	(\
	cd $(INSTALLTOP)/certs; \
	ssleay req -new -x509 -nodes -days 365 -out telnetd.pem -keyout telnetd.pem; \
	ln -s telnetd.pem `ssleay x509 -noout -hash < telnetd.pem`.0 ;\
	chmod 644 $(INSTALLTOP)/certs/telnetd.pem; \
	)

