# (c) 1994, 1995 by Axel Zinser aka Fifi (fifi@hiss.han.de)

SRCS	=	bsmtpd.c alloc.c xstring.c depress.c xgetopt.c
EXEC	=	bsmtpd
LINKS	=	sbsmtp rbsmtp bsmtp lock unlock

DEFS	=
CCOPTS	= 	-g -I.

LDOPTS	=
# Solaris 2.4:
# LIBS	=	-lsocket -lnsl
LIBS	=

INSTDIR =	/usr/local/lib/bsmtp
INSTUSR	=	bsmtp
INSTPRM =	4755

MANSRCS =	bsmtp.1 bsmtpd.1 rbsmtp.1 sbsmtp.1
MANDEST	=	/usr/local/man

NEWSGRP =	hannet.tools.sources
NEWSDST =	world
NEWSABS =	bsmtp@hiss.han.de

DOWNSRC	=
DOWNTRG	=

## MACHINE INDEPENDENT PART. DON'T TOUCH!
## created: Sun Mar 24 16:32:03 MET 1996
# (c) 1994, 1995 by Axel Zinser aka Fifi (fifi@hiss.han.de)
# Version 2.2

##LBL1

GDEFS	=

ARCH	=	arch

SHAR	=	shar -a -p:
SHARDIR	=	/tmp

UUE	=	uuencode
UUEDIR	=	/tmp

TAR	=	tar
TARDIR	=	/usr/local/pd/misc

COMP	=	gzip -f9v
COMPSUFF=	gz

SAVEDIR =	/usr/spool/autopost

CFLAGS	=	$(CCOPTS) $(DEFS) $(GDEFS)
LDFLAGS	=	$(LDOPTS)

MAKEFILE=	Makefile
MAKETEMPL=	Makefile.templ
MAKENEW=	.Makefile.new
MAKEBAK=	.Makefile.bak

ARCHDOT=	.arch

OBJS	=	$(SRCS:.c=.o)

init:
		@if [ ! -f $(ARCHDOT) ]; then echo nixda > $(ARCHDOT); fi
		@if [ `cat $(ARCHDOT)` != `$(ARCH)` ]; then $(MAKE) clean depend; fi
		@$(MAKE) all

all:		.Makefile $(ARCHDOT)
		@$(MAKE) $(EXEC)

verbose:
		(echo > /tmp/ZZZ.c; $(CC) -v -o /tmp/ZZZ.o /tmp/ZZZ.c; rm -f /tmp/ZZZ.c /tmp/ZZZ.o)

$(ARCHDOT):
		$(ARCH) > $(ARCHDOT)

.Makefile:	$(MAKEFILE)
		@rm -f *.o
		@touch .Makefile

$(MAKEFILE):	$(MAKETEMPL)
		@$(MAKE) makefile

makefile:
		@echo "make Makefile"
		@cp $(MAKEFILE) $(MAKEBAK)
		@cat $(MAKEBAK) | sed '/^## MACHINE INDEPENDENT PART/,$$d' > $(MAKENEW)
		@echo "## MACHINE INDEPENDENT PART. DON'T TOUCH!" >> $(MAKENEW)
		@echo "## created: "`date` >> $(MAKENEW)
		@cat $(MAKETEMPL) >> $(MAKENEW)
		@mv $(MAKENEW) $(MAKEFILE)
		@rm -f $(MAKEBAK)

##LBL2

mini:
		cp $(MAKEFILE) $(MAKEBAK)
		cat $(MAKEBAK) | sed '/^## MACHINE INDEPENDENT PART/,$$d' > $(MAKENEW)
		echo "## MACHINE INDEPENDENT PART. DON'T TOUCH!" >> $(MAKENEW)
		echo "## created: "`date` >> $(MAKENEW)
		echo "all:" >> $(MAKENEW)
		echo "		mv $(MAKEFILE) .Makefile.old" >> $(MAKENEW)
		echo "		$(MAKE) -f .Makefile.old $(MAKEFILE)" >> $(MAKENEW)
		cat $(MAKEBAK) | sed '1,/^##LBL1/d' | sed '/^##LBL2/,$$d' >> $(MAKENEW)
		mv $(MAKENEW) $(MAKEFILE)


help:
		@echo "make [ $(EXEC) | $(MAKEFILE) | install | tar|shar | clean|veryclean | depend|independ | version|release|patchlevel ]"
		

$(EXEC):	$(OBJS)
		@(echo "Version: "`cat version.h | sed 's/^[^"]*"//;s/"//'`)
		$(CC) $(LDFLAGS) -o $(EXEC) $(OBJS) $(LIBS)
		@(if [ "$(LINKS)" != "" ]; then for LINK in $(LINKS) $(EXEC); do [ "$$LINK" != "$(EXEC)" ] && rm -f $$LINK && ln $(EXEC) $$LINK && echo ln $(EXEC) $$LINK; true; done; fi)

install:	$(EXEC)
		cp $(EXEC) $(INSTDIR)
		strip $(INSTDIR)/$(EXEC)
		@(if [ "$(LINKS)" != "" ]; then cd $(INSTDIR); for LINK in $(LINKS) $(EXEC); do [ "$$LINK" != "$(EXEC)" ] && rm -f $$LINK && ln $(EXEC) $$LINK && echo ln $(INSTDIR)/$(EXEC) $(INSTDIR)/$$LINK; true; done; fi)
		@(if [ "$(INSTUSR)" != "" ]; then chown $(INSTUSR) $(INSTDIR)/$(EXEC) && echo chown $(INSTUSR) $(INSTDIR)/$(EXEC); fi)
		@(if [ "$(INSTGRP)" != "" ]; then chgrp $(INSTGRP) $(INSTDIR)/$(EXEC) && echo chown $(INSTGRP) $(INSTDIR)/$(EXEC); fi)
		@(if [ "$(INSTPRM)" != "" ]; then chmod $(INSTPRM) $(INSTDIR)/$(EXEC) && echo chmod $(INSTPRM) $(INSTDIR)/$(EXEC); fi)
		@(if [ "$(MANSRCS)" != "" -a "$(MANDEST)" != "" ]; then for MANFILE in $(MANSRCS) dummy; do [ "$$MANFILE" = "dummy" ] && continue; CHAPTER=`echo $$MANFILE | sed 's/^.*\.\([0-9]\).*$$/\1/'`; cp $$MANFILE $(MANDEST)/man$$CHAPTER && chmod 644 $(MANDEST)/man$$CHAPTER/$$MANFILE && echo cp $$MANFILE $(MANDEST)/man$$CHAPTER; done; fi)

tar:		clean
		@(VERS=`sed 's/^[^"]*"//;s/"[^"]*$$//' < version.h`; DIR=`basename \`pwd\``; cd ..; rm -f $(TARDIR)/$$DIR-$$VERS.tar; $(TAR) -cvf $(TARDIR)/$$DIR-$$VERS.tar $$DIR 2>/dev/null; $(COMP) $(TARDIR)/$$DIR-$$VERS.tar; ls -dl $(TARDIR)/$$DIR-*.tar*)
#		@(VERS=`sed 's/^[^"]*"//;s/"[^"]*$$//' < version.h`; DIR=`basename \`pwd\``; cd ..; rm -f $(TARDIR)/$$DIR-$$VERS.tar; $(TAR) -cvf $(TARDIR)/$$DIR-$$VERS.tar $$DIR `ls $$DIR | sed 's@^@COMMON/@'` 2>/dev/null; $(COMP) $(TARDIR)/$$DIR-$$VERS.tar; ls -dl $(TARDIR)/$$DIR-*.tar*)

uue:		tar
		@(VERS=`sed 's/^[^"]*"//;s/"[^"]*$$//' < version.h`; DIR=`basename \`pwd\``; $(UUE) $(TARDIR)/$$DIR-$$VERS.tar.$(COMPSUFF) $$DIR-$$VERS.tar.$(COMPSUFF) > $(UUEDIR)/$$DIR-$$VERS.tar.uue; ls -l $(UUEDIR)/$$DIR-$$VERS.tar.uue)

shar:		clean independ version.h
		@(VERS=`sed 's/^[^"]*"//;s/"[^"]*$$//' < version.h`; DIR=`basename \`pwd\``; ([ -s INFO ] && cat INFO; $(SHAR) *;) > $(SHARDIR)/$$DIR-$$VERS.shar; ls -dl $(SHARDIR)/$$DIR-*.shar*)

post:		shar
		(VERS=`sed 's/^[^"]*"//;s/"[^"]*$$//' < version.h`; DIR=`basename \`pwd\``; Pfiles -n -S$(SAVEDIR)/SRC:$$DIR.shar +D +F -g$(NEWSGRP) -s$$DIR-$$VERS -Fposter -f$(NEWSABS) -d$(NEWSDST) -a$(APPROVED) $(SHARDIR)/$$DIR-$$VERS.shar)

post-diff:	shar
		(VERS=`sed 's/^[^"]*"//;s/"[^"]*$$//' < version.h`; DIR=`basename \`pwd\``; Pfiles -n -S$(SAVEDIR)/SRC:$$DIR.shar +D -g$(NEWSGRP) -s$$DIR-$$VERS -Fposter -f$(NEWSABS) -d$(NEWSDST) -a$(APPROVED) $(SHARDIR)/$$DIR-$$VERS.shar)

version.h:
		echo '#define VERSION "0.1.0"' > version.h

version:	version.h
		echo '#define VERSION "'`expr \`sed 's/^[^"]*"\([0-9]*\)\..*$$/\1/' < version.h\` + 1`'.0.0"' > version.h

release:	version.h
		echo '#define VERSION "'`sed 's/^[^"]*"\([0-9]*\)\..*$$/\1/' < version.h`'.'`expr \`sed 's/^[^"]*"[0-9]*\.\([0-9]*\).*$$/\1/' < version.h\` + 1`'"' > version.h

complauf:	version.h
		echo '#define VERSION "'`sed 's/^[^"]*"\([0-9]*\.[0-9]*\).*$$/\1/' < version.h`'.'`expr \`sed 's/^[^"]*"[0-9]*\.[0-9]*//;s/^pl.*$$//;s/^\.//;s/\([0-9]*\).*$$/\1/;s/^$$/0/' < version.h\` + 1`'"' > version.h

patchlevel:	version.h
		echo '#define VERSION "'`sed 's/^[^"]*"\([0-9]*\.[0-9]*\).*$$/\1/' < version.h`'pl'`expr \`sed 's/^[^"]*"[0-9]*\.[0-9]*//;s/^\.[0-9]*//;s/^pl//;s/".*$$//;s/^$$/0/' < version.h\` + 1`'"' > version.h

clean:
		rm -f $(EXEC) $(LINKS) $(OBJS) *.o $(MAKEBAK) $(MAKENEW) a.out core .Makefile .DEPENDENCIES $(ARCHDOT)

download:
		cp $(DOWNTRG) $(DOWNTRG).`date +%y%m%d.%H%M%S`
		chmod 666 $(DOWNTRG)
		uucp -r -nfifi $(DOWNSRC) $(DOWNTRG)
		
depend:		version.h $(SRCS)
		cp $(MAKEFILE) $(MAKEBAK)
		cat $(MAKEBAK) | sed '/^## NEVER DELETE THIS LINE/,$$d' > $(MAKENEW)
		echo '## NEVER DELETE THIS LINE' >> $(MAKENEW)
		for SOURCE in $(SRCS); do $(CC) -M $(CFLAGS) -c $$SOURCE; done >> $(MAKENEW)
		mv $(MAKENEW) $(MAKEFILE)
		rm -f $(MAKEBAK)

independ:
		cp $(MAKEFILE) $(MAKEBAK)
		cat $(MAKEBAK) | sed '/^## NEVER DELETE THIS LINE/,$$d' > $(MAKENEW)
		echo '## NEVER DELETE THIS LINE' >> $(MAKENEW)
		mv $(MAKENEW) $(MAKEFILE)
		rm -f $(MAKEBAK)


## NEVER DELETE THIS LINE
