#:ts=8
#
#    $Id: Makefile,v 3.9.2.0 1995/06/12 17:14:03 mj Exp $
#
#    Makefile for FIDOGATE software
#

#
# Normally it should not be necessary to modify this file, see
# ../config.make and ../rules.make
#

TOPDIR		= ..

include $(TOPDIR)/config.make
include $(TOPDIR)/rules.make


OBJS		= address.o aliases.o areas.o areasbbs.o binkley.o\
		  bounce.o bufstring.o charset.o config.o crc16.o crc32.o\
		  date.o dir.o exit.o fopen.o getopt.o getopt1.o\
		  gettime.o hosts.o kludge.o lock.o log.o mail.o maus.o\
		  message.o misc.o msgid.o node.o outpkt.o packet.o passwd.o\
		  parsedate.o read.o rfcaddr.o rfcheader.o routing.o\
		  sequencer.o textlist.o version.o wildmat.o\
		  xalloc.o xstrtok.o mime.o


PROGS		= ftn2rfc rfc2ftn ftnin ftninpost ftninrecomb ftn2ftn\
		  out-attach pktdebug sumcrc ftnbsy\
		  ftnaf ftntoss ftnroute ftnpack ftnlock ftnlog ftnseq\
		  runtoss rununpack runin runout rundf\
		  ffx ffxqt ffxbatch ffxmail ffxrmail ffxrun


all:		paths.mak $(PROGS)


$(LIB):		$(OBJS)
	rm -f $(LIB)
	$(AR) r $(LIB) $(OBJS)
	$(RANLIB) $(LIB)

parsedate.c:	parsedate.y
	@echo "expect 6 shift/reduce conflicts"
	$(YACC) parsedate.y
	mv y.tab.c parsedate.c

paths.mak:	Makefile
	@echo '/*'                                          > paths.mak
	@echo ' * Automatically generated --- do not edit!' >>paths.mak
	@echo ' */'                                         >>paths.mak
	@echo '#define BINDIR   "$(BINDIR)"'                >>paths.mak
	@echo '#define LIBDIR   "$(LIBDIR)"'                >>paths.mak
	@echo '#define SPOOLDIR "$(SPOOLDIR)"'              >>paths.mak
	@echo '#define LOGDIR   "$(LOGDIR)"'                >>paths.mak
	@echo ' '                                           >>paths.mak
	@echo '#define OUTBOUND "$(OUTBOUND)"'              >>paths.mak
	@echo '#define INBOUND  "$(INBOUND)"'               >>paths.mak
	@echo '#define PINBOUND "$(PINBOUND)"'              >>paths.mak
	diff paths.mak paths.h >/dev/null || cp paths.mak paths.h


rfc2ftn:	$(LIB)
ftn2ftn:	$(LIB)
ftn2rfc:	$(LIB)
ftnin:		$(LIB)
mail2news:	$(LIB)
out-attach:	$(LIB)
pktdebug:	$(LIB)
ffx:		$(LIB)
ffxqt:		$(LIB)
ffxbatch:	$(LIB)
sumcrc:		$(LIB)
ftnaf:		$(LIB)
ftnbounce:	$(LIB)
ftntoss:	$(LIB)
ftnroute:	$(LIB)
ftnpack:	$(LIB)
ftnlock:	$(LIB)
ftnlog:		$(LIB)
ftnseq:		$(LIB)
ftnbsy:		$(LIB)


testdate:	$(LIB)
testdate.o:	parsedate.c
	$(CC) $(CFLAGS) -DTEST -c parsedate.c -o testdate.o
testrfc:	$(LIB)
testrfc.o:	rfcheader.c
	$(CC) $(CFLAGS) -DTEST -c rfcheader.c -o testrfc.o
testxx:		testxx.o $(LIB)
testcrc32:	crc32.c
	$(CC) $(LFLAGS) -DTEST -o testcrc32 crc32.c
testdir:	dir.c $(LIB)
	$(CC) $(LFLAGS) -DTEST -o testdir dir.c $(LIB)


install-gate:
	$(INSTALL_SETUID)  rfc2ftn     $(LIBDIR)
	$(INSTALL_PROG)   ftn2rfc     $(LIBDIR)
	$(INSTALL_PROG)   ftnin       $(LIBDIR)
	$(INSTALL_PROG)   ftninpost   $(LIBDIR)
	$(INSTALL_PROG)   ftninrecomb $(LIBDIR)
	$(INSTALL_PROG)   ftnseq      $(LIBDIR)

install-ftngate:
	$(INSTALL_PROG)   ftn2ftn     $(LIBDIR)

install-ffx:
	$(INSTALL_SETUID)  ffx         $(LIBDIR)
	$(INSTALL_PROG)   ffxqt       $(LIBDIR)
	$(INSTALL_PROG)   ffxbatch    $(LIBDIR)
	$(INSTALL_PROG)   ffxmail     $(LIBDIR)
	$(INSTALL_PROG)   ffxrmail    $(LIBDIR)
	$(INSTALL_PROG)   ffxrun      $(LIBDIR)

install-util:
	$(INSTALL_PROG)   out-attach  $(BINDIR)
	$(INSTALL_PROG)   pktdebug    $(BINDIR)
	$(INSTALL_PROG)   sumcrc      $(BINDIR)

install-ftnaf:
	$(INSTALL_SETUID)  ftnaf       $(LIBDIR)

install-tosser:
	$(INSTALL_PROG)   ftntoss     $(LIBDIR)
	$(INSTALL_PROG)   ftnroute    $(LIBDIR)
	$(INSTALL_PROG)   ftnpack     $(LIBDIR)
	$(INSTALL_PROG)   ftnlock     $(LIBDIR)
	$(INSTALL_PROG)   ftnlog      $(LIBDIR)
	$(INSTALL_PROG)   ftnbsy      $(LIBDIR)
	$(INSTALL_PROG)   runtoss     $(LIBDIR)
	$(INSTALL_PROG)   rununpack   $(LIBDIR)
	$(INSTALL_PROG)   runin       $(LIBDIR)
	$(INSTALL_PROG)   runout      $(LIBDIR)
	$(INSTALL_PROG)   rundf       $(LIBDIR)

install-dirs:
	$(INSTALL_DIR)    $(BINDIR)
	$(INSTALL_DIR)    $(LIBDIR)
	$(INSTALL_DIR)    $(SPOOLDIR)
	$(INSTALL_DIR)    $(SPOOLDIR)/in
	$(INSTALL_DIR)    $(SPOOLDIR)/in/mail
	$(INSTALL_DIR)    $(SPOOLDIR)/in/news
	$(INSTALL_DIR)    $(SPOOLDIR)/in/bad
	$(INSTALL_DIR)    $(SPOOLDIR)/insecure
	$(INSTALL_DIR)    $(SPOOLDIR)/out
	$(INSTALL_DIR)    $(SPOOLDIR)/locks
	$(INSTALL_DIR)    $(SPOOLDIR)/seq
	$(INSTALL_DIR)    $(SPOOLDIR)/toss
	$(INSTALL_DIR)    $(SPOOLDIR)/toss/in
	$(INSTALL_DIR)    $(SPOOLDIR)/toss/bad
	$(INSTALL_DIR)    $(SPOOLDIR)/toss/tmp
	$(INSTALL_DIR)    $(SPOOLDIR)/toss/out
	$(INSTALL_DIR)    $(SPOOLDIR)/toss/pack

install:	install-gate install-ftngate install-ffx\
		install-util install-ftnaf   install-tosser
	

clean:
	rm -f testdate testdate.c testrfc testrfc.c testxx testcrc32 testdir
	rm -f $(PROGS) $(LIB)
	rm -f *~ *.bak *.o tags TAGS core paths.tmp


#
# Dependencies
#
depend:
	$(CC) -MM *.c >.depend

depend-all:
	$(CC) -M *.c >.depend
		
include .depend
