# $Id: Makefile,v 1.24 1997/05/03 09:37:04 lexa Exp $

# CVS-logs removed

# Note! Makefile syntax required BSD-make (pmake)

CHMOD=/bin/chmod
CHOWN=/usr/sbin/chown
GCC=gcc -O
CFLAGS=-funsigned-char -Wall
CC=${GCC} ${CFLAGS}
# Some systems contains resolver routines in libresolv
# EXTRALIBS=lresolv
EXTRALIBS=
LDFLAGS=
BINMODE=755
CONFMODE=644
TABLEMODE=644
TABLEDIRMODE=755

CONFOWN=root.wheel
BINOWN=root.wheel
TABLEOWN=root.wheel

#directory to place  binary
BINDIR=/usr/local/bin
UTILDIR=/usr/local/bin
CGIPATH=/usr/local/www/cgi-bin
# name of binaries
CYRPROXY=cyrproxy
SPY=tcpspy

# directory ty place recoding tables
TBLDIR=/usr/local/share/proxy

# config file location
CONF_FILE=/etc/cyrproxy.conf

# Subdirs for make
# cyrcoder - filter-like cyrillic recoder
# discover - utility for building recoding table(s) from to same texts
#  	     in different encodings. If UTILDIR is specified above, than
# utilites will be placed in ${UTILDIR}
SUBDIRS=discover cyrcoder


# list of tables, known by encoder.
ENCLIST= alt iso koi8 win
TABLESLIST= alt-iso alt-win alt-koi8 iso-alt iso-koi8 iso-win koi8-alt \
		 koi8-iso koi8-win win-alt win-iso win-koi8 koi8-mac mac-koi8

######################### DO NOT CHANGE BELOW THIS LINE ################

DEFINES+=-DDEFTABLESDIR=\"${TBLDIR}\" -DDefaultPrecedence=${PRECEDENCE}
DEFINES+=-DCONFIGFILE=\"${CONF_FILE}\"

SRCS=com_gw.c readconf.c connect.c gopher_gw.c main.c telnet_gw.c http_gw.c log.c bufio.c
ALLSRCS=${SRCS} spy.c
OBJS=com_gw.o readconf.o connect.o gopher_gw.o main.o telnet_gw.o http_gw.o log.o bufio.o

CFLAGS+= -Wall -O ${DEFINES}


all: ${CYRPROXY} ${SPY} subdirmake config.gen


subdirmake:
	@for i in ${SUBDIRS}; do echo "Making all in $$i" ;cd $$i; pmake all; cd ..; done

.SUFFIXES: .a .o .c


.c.o: policy.h
	${CC} ${CFLAGS} -c ${.IMPSRC}

clean: clean-sub
	rm -f  ${CYRPROXY} *.o *~ ${CYRPROXY}.core .depend ${SPY} ${SPY}.core
	rm -f config.gen cyrproxy.config.sample alldefs.h

clean-sub:
	@for i in ${SUBDIRS}; do echo "Make clean in $$i" ; cd $$i; pmake clean; cd .. ; done

install: install-bin install-config install-tables install-sub

install-sub:
	@for i in ${SUBDIRS} ; do cd $$i ; pmake install; cd ..; done

install-bin: ${CYRPROXY} ${SPY}
	cp ${CYRPROXY} ${BINDIR}
	${CHMOD} ${BINMODE} ${BINDIR}/${CYRPROXY}
	${CHOWN} ${BINOWN} ${BINDIR}/${CYRPROXY}
	cp ${SPY} ${BINDIR}
	${CHMOD} ${BINMODE} ${BINDIR}/${SPY}
	${CHOWN} ${BINOWN} ${BINDIR}/${SPY}

install-config: config.gen
	@if [ -f ${CONF_FILE} ] ; then \
	  cp config.gen cyrproxy.config.sample; \
	  echo '=================================================================';\
	  echo 'You already have ${CONF_FILE}'; \
	  echo "Examine `pwd`/cyrproxy.config.sample and make neccessary";\
	  echo "changes in ${CONF_FILE}"; \
	  echo '=================================================================';\
	  echo -n 'Press any key.....'; \
	  read _aaa \
	else; \
          cp config.gen ${CONF_FILE}; \
          ${CHOWN} ${CONFOWN}  ${CONF_FILE}; \
          ${CHMOD} ${CONFMODE}  ${CONF_FILE}; \
	 fi; 

install-tables:
	if [ \! -d ${TBLDIR} ]; then \
		mkdir ${TBLDIR}; \
		${CHOWN} ${TABLEOWN}  ${TBLDIR} ;\
		${CHMOD} ${TABLEDIRMODE} ${TBLDIR} ;\
	fi

	for i in ${TABLESLIST} ;\
	do \
		cp tables/$$i ${TBLDIR} ;\
		${CHOWN} ${TABLEOWN} ${TBLDIR}/$$i;\
		${CHMOD} ${TABLEMODE} ${TBLDIR}/$$i;\
	done

#
alldefs.h: policy.h
	awk '/^\#/{print $0}' <policy.h >alldefs.h

config.gen: cyrproxy.conf.tmpl Makefile alldefs.h
	${CC}  ${CFLAGS} -P -E - < cyrproxy.conf.tmpl | awk -f extranl.awk >config.gen

${CYRPROXY}: ${OBJS}
	${CC} ${CFLAGS} ${LDFLAGS} -o ${CYRPROXY} ${OBJS} ${EXTRALIBS}

${SPY}: spy.c connect.o com_gw.o log.o bufio.o
	${CC} ${CFLAGS} -o ${SPY} spy.c connect.o com_gw.o log.o bufio.o ${EXTRALIBS}

depend: ${ALLSRCS} 
	mkdep -p ${CFLAGS}  ${ALLSRCS}


# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.

