srcdir=         .



SHELL=		/bin/sh
TOPDIR=		..
PZCONFIG=	$(TOPDIR)/zmailer.Config
INSTALL=	/usr/bin/install -c
MKDIR=		mkdir -p
MD5SUM=		/usr/bin/md5sum

PMAILSHARE=	scheduler.conf sm.conf smtpserver.conf scheduler.auth \
		smtp-tls.conf
PMAILBIN=	mailrm.sh newaliases newfqdnaliases newdb zmailer.sh \
		newdbprocessor post-install.sh

all:
	@echo Usage: '"make [ dirs | config | mailbin | mailshare | db | cf | forms | guides | install | install-bin ]"'

install: dirs mailbin mailshare db cf forms guides

install-bin: dirs mailbin cf db

FRC:

$(PZCONFIG):
	@cd $(TOPDIR) ; $(MAKE) $(MFLAGS) zmailer.Config

$(MD5SUM):
	if [ "$(MD5SUM)" = "$(TOPDIR)/utils/md5sum" ]; then	\
	   cd $(TOPDIR); $(MAKE) $(MFLAGS) md5sum ;		\
	fi

# Ensure all necessary directories exist

dirs:	$(PZCONFIG)
	-@(. $(PZCONFIG) ;					\
	umask 022 ;						\
	if [ -n "$(DESTDIR)" ] ; then				\
		$(MKDIR) -m 755 $(DESTDIR) ;			\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILSHARE ]; then			\
		echo $(MKDIR) $(DESTDIR)$$MAILSHARE &&		\
			$(MKDIR) $(DESTDIR)$$MAILSHARE ; 	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILVAR ]; then			\
		echo $(MKDIR) $(DESTDIR)$$MAILVAR &&		\
			$(MKDIR) $(DESTDIR)$$MAILVAR ;		\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILVAR/db ]; then			\
		echo $(MKDIR) $(DESTDIR)$$MAILVAR/db &&		\
			$(MKDIR) $(DESTDIR)$$MAILVAR/db ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILVAR/db/proto ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILVAR/db/proto &&	\
			$(MKDIR) $(DESTDIR)$$MAILVAR/db/proto ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILVAR/lists ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILVAR/lists &&	\
			$(MKDIR) $(DESTDIR)$$MAILVAR/lists ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILVAR/fqlists ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILVAR/dqlists &&	\
			$(MKDIR) $(DESTDIR)$$MAILVAR/fqlists ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILSHARE/forms ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILSHARE/forms &&	\
			$(MKDIR) $(DESTDIR)$$MAILSHARE/forms ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILSHARE/forms/proto ]; then	\
		echo $(MKDIR) $(DESTDIR)$$MAILSHARE/forms/proto && \
			$(MKDIR) $(DESTDIR)$$MAILSHARE/forms/proto ; \
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILSHARE/proto ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILSHARE/proto &&	\
			$(MKDIR) $(DESTDIR)$$MAILSHARE/proto ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILSHARE/bak ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILSHARE/bak &&	\
			$(MKDIR) $(DESTDIR)$$MAILSHARE/bak ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILSHARE/guides ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILSHARE/guides &&	\
			$(MKDIR) $(DESTDIR)$$MAILSHARE/guides ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILBIN ]; then			\
		echo $(MKDIR) $(DESTDIR)$$MAILBIN &&		\
			$(MKDIR) $(DESTDIR)$$MAILBIN ;		\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILBIN/ta ]; then			\
		echo $(MKDIR) $(DESTDIR)$$MAILBIN/ta &&		\
			$(MKDIR) $(DESTDIR)$$MAILBIN/ta ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$MAILBIN/bak ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILBIN/bak &&		\
			$(MKDIR) $(DESTDIR)$$MAILBIN/bak ;	\
	fi ;							\
	if [ ! -d $(DESTDIR)$$POSTOFFICE ]; then			\
		echo $(MKDIR) $(DESTDIR)$$POSTOFFICE &&		\
			$(MKDIR) $(DESTDIR)$$POSTOFFICE ;	\
		chmod 2755 $(DESTDIR)$$POSTOFFICE ;		\
		chmod g+s  $(DESTDIR)$$POSTOFFICE ;		\
	fi;							\
	echo " " ;						\
	echo "Running  post-install  creates $$POSTOFFICE subdirs!"; \
	echo " " ;						\
	if [ ! -d $(DESTDIR)$$LOGDIR ]; then			\
		echo $(MKDIR) $(DESTDIR)$$LOGDIR &&		\
		$(MKDIR) $(DESTDIR)$$LOGDIR ;			\
		chmod 755 $(DESTDIR)$$LOGDIR ;			\
	fi )

clientdirs:	$(PZCONFIG)
	-@(. $(PZCONFIG) ;				\
	if [ ! -d $(DESTDIR)$$MAILBIN ]; then		\
		echo $(MKDIR) $(DESTDIR)$$MAILBIN &&	\
			$(MKDIR) $(DESTDIR)$$MAILBIN ;	\
	fi )


# This is only good for testing "make dirs"
cleandirs: FRC $(PZCONFIG)
	-@( . $(PZCONFIG) ; \
	echo tar -cf /tmp/zmstuff.tar $(DESTDIR)$$MAILBIN $(DESTDIR)$$MAILSHARE $(DESTDIR)$$POSTOFFICE && \
	tar -cf /tmp/zmstuff.tar $(DESTDIR)$$MAILBIN $(DESTDIR)$$MAILSHARE $(DESTDIR)$$POSTOFFICE && \
	echo rm -rf $(DESTDIR)$$MAILBIN $(DESTDIR)$$MAILSHARE $(DESTDIR)$$POSTOFFICE && \
	rm -rf $(DESTDIR)$$MAILBIN $(DESTDIR)$$MAILSHARE $(DESTDIR)$$POSTOFFICE ; \
	rm -f +dirs )


mailbin: $(PZCONFIG) $(PMAILBIN) $(MD5SUM)
	-@(. $(PZCONFIG) ;					\
	if [ ! -d $(DESTDIR)$$MAILBIN/bak ]; then $(MKDIR) $(DESTDIR)$$MAILBIN/bak ; fi ; \
	for file in $(PMAILBIN) ;				\
	do							\
		name=`expr $$file : '\([^.]*\)'` ;		\
		echo $(INSTALL) -m 755 $$file $(DESTDIR)$$MAILBIN/$$name ; \
		$(INSTALL) -m 755 $$file $(DESTDIR)$$MAILBIN/$$name ; \
	done)

mailshare:	$(PZCONFIG) $(PMAILSHARE) $(MD5SUM)
	-@(. $(PZCONFIG) ; pwd=`pwd` ;				\
	MAILSHARE=$(DESTDIR)$$MAILSHARE ;			\
	if [ ! -d $$MAILSHARE/bak ]; then $(MKDIR) $$MAILSHARE/bak ; fi ; \
	for file in $(PMAILSHARE) ;				\
	do							\
		(echo "# Do not edit this file, instead edit $$pwd/$$file" ; \
		echo '#' ; cat $$file) > ms.$$$$ ;		\
		echo $(INSTALL) -m 644 $$file $$MAILSHARE/proto/$$file ; \
		$(INSTALL) -m 644 ms.$$$$ $$MAILSHARE/proto/$$file ; \
		rm -f ms.$$$$ ;					\
	done )


forms:	FRC $(MD5SUM)
	@( . $(PZCONFIG) ;			\
	FORMSDIR="$(DESTDIR)$$MAILSHARE/forms" ; \
	if [ ! -d "$$FORMSDIR/bak" ]; then	\
		$(MKDIR) "$$FORMSDIR/bak" ;	\
	fi ;					\
	if [ ! -d "$$FORMSDIR/proto" ]; then	\
		$(MKDIR) "$$FORMSDIR/proto" ;	\
	fi ;					\
	for file in ${srcdir}/forms/????* ;	\
	do					\
		name="`basename $$file`" ;	\
		echo $(INSTALL) -m 644 $$file $$FORMSDIR/proto/$$name ;	\
		$(INSTALL) -m 644 $$file $$FORMSDIR/proto/$$name ;	\
	done )


db:	FRC
	-@( . $(PZCONFIG) ;					\
	MAILVAR=$(DESTDIR)$$MAILVAR ;				\
	MAILSHARE=$(DESTDIR)$$MAILSHARE;				\
	if [ ! -d $$MAILVAR/db ]; then				\
		$(MKDIR) $$MAILVAR/db ;				\
	fi ;							\
	if [ ! -d $$MAILVAR/db/proto ]; then			\
		$(MKDIR) $$MAILVAR/db/proto ;			\
	fi ;							\
	echo "Don't forget to set up MAILVAR/db by hand -- if there is nothing, we seed it now" ; \
	$(INSTALL) -m 644 db/aliases $$MAILVAR/db/proto/aliases ; \
	for x in fqdnaliases fqdnroutes  dbases.conf  localnames routes \
		 smtp-policy.mx smtp-policy.src smtp-policy.relay \
		 userdb kill-headers ;		\
	do							\
		$(INSTALL) -m 644 $(srcdir)/db/$$x $$MAILVAR/db/proto/$$x ; \
	done ; )

cf:	FRC  $(MD5SUM)
	-@(. $(PZCONFIG) ;			\
	MAILSHARE=$(DESTDIR)$$MAILSHARE;		\
	if [ ! -d $$MAILSHARE/proto ]; then	\
		$(MKDIR) $$MAILSHARE/proto ;	\
	fi ;					\
	if [ ! -d $$MAILSHARE/cf ]; then	\
		$(MKDIR) $$MAILSHARE/cf ;	\
	fi ;					\
	if [ ! -d $$MAILSHARE/cf/proto ]; then	\
		$(MKDIR) $$MAILSHARE/cf/proto ; \
	fi ;					\
	if [ ! -d $$MAILSHARE/cf/fc ]; then	\
		$(MKDIR) $$MAILSHARE/cf/fc ;	\
	fi ;					\
	cp -p $(srcdir)/cf/*.cf $$MAILSHARE/cf/proto ;		\
	cp -p cf/*.cf $$MAILSHARE/cf/proto/ ;			\
	cp -p cf/SMTP.cf $$MAILSHARE/proto/router.cf ;		\
	/bin/rm -f `find $$MAILSHARE/. -name "*.fc" -print`	\
		foo-file ;					\
	)


guides:	FRC
	-. $(PZCONFIG) ;					\
	MAILSHARE=$(DESTDIR)$$MAILSHARE ;			\
	src=$(srcdir)/$(TOPDIR)/doc/guides ;			\
	cp -p $$src/* $$MAILSHARE/guides/


clean mostlyclean:	FRC
	rm -f ./+* *~
distclean: clean
	rm -f Makefile sm.conf zmailer.sh
	rm -f newfqdnaliases newaliases newdb mailrm.sh
	rm -f scheduler.conf post-install.sh smtp-tls.conf
	rm -f smtpserver.conf newdbprocessor scheduler.auth
depend:


syntax highlighted by Code2HTML, v. 0.9.1