#:ts=8
#
#    $Id: Makefile,v 3.1 1993/09/14 07:38:47 mj beta mj $
#
#    Makefile for FIDOGATE software
#
#
SHELL		=	/bin/sh

#
# ----- Start configuration defines ------------------------------------------
#
LIBDIR		=	/usr/local/lib/fidonet
SPOOLDIR	=	/usr/spool/fidonet

SPOOLDIRS	=	in in/mail in/news in/bad out unsecure

LIBBINS		=	fido2rfc rfc2fido fidorun toaddr mail2news
SETUIDBINS	=	rfc2fido

OWNER		=	news
GROUP		=	news

#
# Operating system dependent defines
#
#SYSFLAGS	=	-DUSG
SYSFLAGS	=	-DBSD

#
# C compiler / flags
#
CC		=	gcc
YACC		=	bison -y

CFLAGS		=	-g -Wall
LDFLAGS		=	-g

#LIBS		=	-lPW
#LIBS		=	-lx

#
# ----- End configuration defines --------------------------------------------
#
# Normally it should not be necessary to change anything below this line
#

OBJALL		= misc.o rfcheader.o textlist.o read.o version.o\
		  xalloc.o

OBJFIDO		= address.o aliases.o crc32.o getdate.o hosts.o msgid.o\
		  wildmat.o getopt.o getopt1.o config.o

# Conversion programs
FIDO2RFC	= fido2rfc.o bufstring.o charset.o \
		  $(OBJFIDO) $(OBJALL)

RFC2FIDO	= rfc2fido.o $(OBJFIDO) $(OBJALL)

# Utilities
TOADDR		= toaddr.o $(OBJALL)

MAIL2NEWS	=  mail2news.o $(OBJALL)



ALL		= fido2rfc rfc2fido toaddr mail2news fidorun


#
# Compiling
#
.c.o:
	$(CC) $(CFLAGS) $(SYSFLAGS) -c $<


all:	$(ALL)



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


paths.h:	Makefile
	@echo 'Creating paths.h'
	@echo '/*'                                          > paths.h
	@echo ' * Automatically generated --- do not edit!' >>paths.h
	@echo ' */'                                         >>paths.h
	@echo '#define LIBDIR   "$(LIBDIR)"'                >>paths.h
	@echo '#define SPOOLDIR "$(SPOOLDIR)"'              >>paths.h



rfc2fido:	$(RFC2FIDO)
	$(CC) $(LDFLAGS) -o rfc2fido  $(RFC2FIDO)  $(LIBS)


fido2rfc:	$(FIDO2RFC)
	$(CC) ${LDFLAGS} -o fido2rfc  $(FIDO2RFC)  $(LIBS)


toaddr:		$(TOADDR)
	$(CC) $(LDFLAGS) -o toaddr    $(TOADDR)    $(LIBS)


mail2news:	$(MAIL2NEWS)
	$(CC) $(LDFLAGS) -o mail2news $(MAIL2NEWS) $(LIBS)


fidorun:	fidorun.sh
	sed -e 's+??SPOOL??+$(SPOOLDIR)+g' \
		-e 's+??LIB??+$(LIBDIR)+g' fidorun.sh >fidorun
	chmod +x fidorun



install:    $(LIBBINS)
	@for i in $(LIBBINS); do \
		echo "Installing $$i in $(LIBDIR)"; \
		cp $$i $(LIBDIR); \
	done
	@echo "Setting owner and group"
	@cd $(LIBDIR); chown $(OWNER) $(LIBBINS); chgrp $(GROUP) $(LIBBINS)
	@echo "Setting setuid bit for $(SETUIDBINS)"
	@cd $(LIBDIR); chmod u+s $(SETUIDBINS)


	
install.dirs:
	@if [ ! -d $(LIBDIR) ]; then\
		echo "Creating $(LIBDIR)";\
		mkdir $(LIBDIR);\
		chown $(OWNER) $(LIBDIR);\
		chgrp $(GROUP) $(LIBDIR);\
		chmod 775 $(LIBDIR);\
	fi
	@if [ ! -d $(SPOOLDIR) ]; then\
		echo "Creating $(SPOOLDIR)";\
		mkdir $(SPOOLDIR);\
		chown $(OWNER) $(SPOOLDIR);\
		chgrp $(GROUP) $(SPOOLDIR);\
		chmod 775 $(SPOOLDIR);\
		echo "Creating sub dirs $(SPOOLDIRS)";\
		cd $(SPOOLDIR);\
		mkdir $(SPOOLDIRS);\
		chown $(OWNER) $(SPOOLDIRS);\
		chgrp $(GROUP) $(SPOOLDIRS);\
		chmod 775 $(SPOOLDIRS);\
	fi

	

clean:
	rm -f $(LIBBINS)
	rm -f *~ *.bak *.o tags TAGS


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

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