SHELL	= /bin/sh

# For now, just hard-coded rules for daemons, commands, config files.

DAEMONS	= man8/bounce.8 man8/defer.8 man8/cleanup.8 man8/error.8 man8/local.8 \
	man8/lmtp.8 man8/master.8 man8/pickup.8 man8/pipe.8 man8/qmgr.8 \
	man8/showq.8 man8/smtp.8 man8/smtpd.8 man8/trivial-rewrite.8 \
	man8/oqmgr.8 man8/spawn.8 man8/flush.8 man8/virtual.8 man8/qmqpd.8 \
	man8/verify.8 man8/trace.8 man8/proxymap.8 man8/anvil.8 \
	man8/scache.8 man8/discard.8 man8/tlsmgr.8 man8/postscreen.8 \
	man8/dnsblog.8 man8/tlsproxy.8 man8/postlogd.8
COMMANDS= man1/postalias.1 man1/postcat.1 man1/postconf.1 man1/postfix.1 \
	man1/postkick.1 man1/postlock.1 man1/postlog.1 man1/postdrop.1 \
	man1/postmap.1 man1/postmulti.1 man1/postqueue.1 man1/postsuper.1 \
	man1/sendmail.1 man1/mailq.1 man1/newaliases.1 man1/postfix-tls.1
CONFIG	= man5/access.5 man5/aliases.5 man5/canonical.5 man5/relocated.5 \
	man5/transport.5 man5/virtual.5 man5/pcre_table.5 man5/regexp_table.5 \
	man5/cidr_table.5 man5/tcp_table.5 man5/header_checks.5 \
	man5/body_checks.5 man5/ldap_table.5 man5/lmdb_table.5 \
	man5/memcache_table.5 man5/mongodb_table.5 man5/mysql_table.5 \
	man5/pgsql_table.5 man5/master.5 man5/nisplus_table.5 \
	man5/generic.5 man5/bounce.5 man5/postfix-wrapper.5 \
	man5/sqlite_table.5 man5/socketmap_table.5
TOOLS	= man1/smtp-sink.1 man1/smtp-source.1 man1/qmqp-sink.1 \
	man1/qmqp-source.1 man1/qshape.1 man1/posttls-finger.1 \
	man1/makedefs.1

update:	$(DAEMONS) $(COMMANDS) $(CONFIG) $(TOOLS)

clean:
	rm -f cat?/*

tidy:	clean

clobber:
	rm -f $(DAEMONS) $(COMMANDS) $(CONFIG)

man8/bounce.8: ../src/bounce/bounce.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/defer.8:
	echo .so man8/bounce.8 >$@

man8/cleanup.8: ../src/cleanup/cleanup.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/anvil.8: ../src/anvil/anvil.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/scache.8: ../src/scache/scache.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/discard.8: ../src/discard/discard.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/dnsblog.8: ../src/dnsblog/dnsblog.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/error.8: ../src/error/error.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/flush.8: ../src/flush/flush.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/local.8: ../src/local/local.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/lmtp.8:
	echo .so man8/smtp.8 >$@

man8/master.8: ../src/master/master.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/oqmgr.8: ../src/oqmgr/qmgr.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? | \
		sed -e 's/qmgr[^_]/o&/' \
		    -e 's/qmgr$$/o&/' \
		    -e 's/QMGR[^_]/O&/' >$@

man8/pickup.8: ../src/pickup/pickup.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/pipe.8: ../src/pipe/pipe.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/postlogd.8: ../src/postlogd/postlogd.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/postscreen.8: ../src/postscreen/postscreen.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/proxymap.8: ../src/proxymap/proxymap.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/qmgr.8: ../src/qmgr/qmgr.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/qmqpd.8: ../src/qmqpd/qmqpd.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/showq.8: ../src/showq/showq.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/spawn.8: ../src/spawn/spawn.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/smtp.8: ../src/smtp/smtp.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/smtpd.8: ../src/smtpd/smtpd.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/tlsproxy.8: ../src/tlsproxy/tlsproxy.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/virtual.8: ../src/virtual/virtual.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/verify.8: ../src/verify/verify.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/trace.8:
	echo .so man8/bounce.8 >$@

man8/tlsmgr.8: ../src/tlsmgr/tlsmgr.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man8/trivial-rewrite.8: ../src/trivial-rewrite/trivial-rewrite.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postalias.1: ../src/postalias/postalias.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postcat.1: ../src/postcat/postcat.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postconf.1: ../src/postconf/postconf.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postdrop.1: ../src/postdrop/postdrop.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postfix.1: ../src/postfix/postfix.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postfix-tls.1: ../conf/postfix-tls-script
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man1/postkick.1: ../src/postkick/postkick.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postlock.1: ../src/postlock/postlock.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postlog.1: ../src/postlog/postlog.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postmap.1: ../src/postmap/postmap.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postmulti.1: ../src/postmulti/postmulti.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postqueue.1: ../src/postqueue/postqueue.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/postsuper.1: ../src/postsuper/postsuper.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/sendmail.1: ../src/sendmail/sendmail.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/mailq.1:
	echo .so man1/sendmail.1 >$@

man1/newaliases.1:
	echo .so man1/sendmail.1 >$@

man5/access.5: ../proto/access
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/aliases.5: ../proto/aliases
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/bounce.5: ../proto/bounce
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/canonical.5: ../proto/canonical
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/cidr_table.5: ../proto/cidr_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/generic.5: ../proto/generic
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/header_checks.5: ../proto/header_checks
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/body_checks.5: ../proto/header_checks
	echo .so man5/header_checks.5 >$@

man5/ldap_table.5: ../proto/ldap_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/lmdb_table.5: ../proto/lmdb_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/master.5: ../proto/master
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/memcache_table.5: ../proto/memcache_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/mongodb_table.5: ../proto/mongodb_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/mysql_table.5: ../proto/mysql_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/socketmap_table.5: ../proto/socketmap_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/sqlite_table.5: ../proto/sqlite_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/nisplus_table.5: ../proto/nisplus_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/pcre_table.5: ../proto/pcre_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/pgsql_table.5: ../proto/pgsql_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/regexp_table.5: ../proto/regexp_table
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/relocated.5: ../proto/relocated
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/transport.5: ../proto/transport
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/virtual.5: ../proto/virtual
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man5/postfix-wrapper.5: ../proto/postfix-wrapper
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@

man1/smtp-sink.1: ../src/smtpstone/smtp-sink.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/smtp-source.1: ../src/smtpstone/smtp-source.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/posttls-finger.1: ../src/posttls-finger/posttls-finger.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/makedefs.1: ../makedefs
	../mantools/srctoman - $? >$@

man5/tcp_table.5: ../proto/tcp_table
	../mantools/srctoman - $? >$@

man1/qmqp-sink.1: ../src/smtpstone/qmqp-sink.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/qmqp-source.1: ../src/smtpstone/qmqp-source.c
	../mantools/fixman ../proto/postconf.proto $? >junk && \
	    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman $? >$@

man1/qshape.1: ../auxiliary/qshape/qshape.pl
	#../mantools/fixman ../proto/postconf.proto $? >junk && \
	#    (cmp -s junk $? || mv junk $?) && rm -f junk
	../mantools/srctoman - $? >$@
