# Don't edit Makefile!
# If you want to use a different compiler, change conf-cc.sh.

NROFF=nroff -man

all: qmail-alias qmail-clean \
qmail-home qmail-inject qmail-lspawn \
qmail-queue qmail-remote qmail-rspawn qmail-send qmail-setup qmail-smtpd \
qmail-makectl qmail-check qmail-setup qmail-start \
tokenize dnscname dnsptr dnsip dnsmxip dnsfq ipmeprint \
tcp-env sendmail qmail-mailq \
qlist qlist2 qreceipt qsmhook qbiff forward \
maildirmake maildir2mbox qail elq pinq \
qmail-upq

man: addresses.0 envelopes.0 forgeries.0 forward.0 \
maildir.0 maildirmake.0 maildir2mbox.0 \
qbiff.0 qlist.0 qreceipt.0 \
qmail-alias.0 qmail-clean.0 qmail-command.0 qmail-control.0 qmail-header.0 \
qmail-inject.0 qmail-limits.0 qmail-lspawn.0 \
qmail-queue.0 qmail-remote.0 qmail-rspawn.0 \
qmail-send.0 qmail-smtpd.0 qmail-start.0 qmail-upgrade.0 \
tcp-env.0 tcp-environ.0


makelib: make-commands systype
	./make-commands "`cat ./systype`" makelib > makelib
	chmod 755 makelib

loaddns: make-commands systype
	./make-commands "`cat ./systype`" loaddns > loaddns
	chmod 755 loaddns

load: make-commands systype
	./make-commands "`cat ./systype`" load > load
	chmod 755 load

compile: make-commands systype
	./make-commands "`cat ./systype`" compile > compile
	chmod 755 compile

make-commands: make-cmds.sh conf-cc.sh warn-auto.sh
	cat warn-auto.sh conf-cc.sh make-cmds.sh > make-commands
	chmod 755 make-commands

systype: find-systype trycpp.c
	./find-systype > systype

find-systype: find-systype.sh conf-cc.sh warn-auto.sh
	cat warn-auto.sh conf-cc.sh find-systype.sh > find-systype
	chmod 755 find-systype

dnsmxip: dnsmxip.o dns.o dnsdoe.o ip.o ipalloc.o \
now.o case.o \
libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a loaddns
	./loaddns dnsmxip dns.o dnsdoe.o ip.o ipalloc.o \
	now.o case.o \
	libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a

dnsptr: dnsptr.o dns.o dnsdoe.o ip.o ipalloc.o case.o \
libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a loaddns
	./loaddns dnsptr dns.o dnsdoe.o ip.o ipalloc.o case.o \
	libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a

dnscname: dnscname.o dns.o dnsdoe.o ip.o ipalloc.o case.o \
libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a loaddns
	./loaddns dnscname dns.o dnsdoe.o ip.o ipalloc.o case.o \
	libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a

dnsip: dnsip.o dns.o dnsdoe.o ip.o ipalloc.o case.o \
libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a loaddns
	./loaddns dnsip dns.o dnsdoe.o ip.o ipalloc.o case.o \
	libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a

dnsfq: dnsfq.o dns.o dnsdoe.o ip.o ipalloc.o case.o \
libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a loaddns
	./loaddns dnsfq dns.o dnsdoe.o ip.o ipalloc.o case.o \
	libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a

ipmeprint: ipmeprint.o ipme.o ip.o ipalloc.o \
libsubstdio.a liballoc.a liberror.a libstr.a libfs.a load
	./load ipmeprint ipme.o ip.o ipalloc.o \
	libsubstdio.a liballoc.a liberror.a libstr.a libfs.a

tcp-env: tcp-env.o dns.o ip.o ipalloc.o remoteinfo.o case.o signal.o \
libgetopt.a libenv.a libsubstdio.a libstralloc.a \
liballoc.a liberror.a libstr.a libfs.a loaddns
	./loaddns tcp-env dns.o ip.o ipalloc.o remoteinfo.o case.o signal.o \
	libgetopt.a libenv.a libsubstdio.a libstralloc.a \
	liballoc.a liberror.a libstr.a libfs.a

tokenize: tokenize.o token.o \
libgetline.a libsubstdio.a libstralloc.a liballoc.a \
liberror.a libstr.a libfs.a load
	./load tokenize token.o \
	libgetline.a libsubstdio.a libstralloc.a liballoc.a \
	liberror.a libstr.a libfs.a

qreceipt: qreceipt.o \
signal.o hfield.o token.o headerbody.o open.o \
wait.o quote.o qqtalk.o \
libenv.a libgetline.a libstralloc.a libsubstdio.a liballoc.a \
liberror.a libstr.a libfs.a load
	./load qreceipt \
	signal.o hfield.o token.o headerbody.o open.o \
	wait.o quote.o qqtalk.o \
	libenv.a libgetline.a libstralloc.a libsubstdio.a liballoc.a \
	liberror.a libstr.a libfs.a

qsmhook: qsmhook.o wait.o \
libstralloc.a libenv.a libgetopt.a libsubstdio.a \
liballoc.a liberror.a libstr.a libfs.a load
	./load qsmhook wait.o \
	libstralloc.a libenv.a libgetopt.a libsubstdio.a \
	liballoc.a liberror.a libstr.a libfs.a

forward: forward.o signal.o wait.o qqtalk.o \
libenv.a libstralloc.a libsubstdio.a liballoc.a \
liberror.a libstr.a libfs.a load
	./load forward signal.o wait.o qqtalk.o \
	libenv.a libstralloc.a libsubstdio.a liballoc.a \
	liberror.a libstr.a libfs.a

qbiff: qbiff.o open.o headerbody.o hfield.o \
libgetline.a libenv.a libstralloc.a libsubstdio.a liballoc.a \
liberror.a libstr.a libfs.a load
	./load qbiff open.o headerbody.o hfield.o \
	libgetline.a libenv.a libstralloc.a libsubstdio.a liballoc.a \
	liberror.a libstr.a libfs.a

qlist: qlist.o \
signal.o hfield.o token.o headerbody.o open.o lock.o wait.o qqtalk.o \
libenv.a libgetline.a libstralloc.a libsubstdio.a liballoc.a \
liberror.a libstr.a libfs.a load
	./load qlist \
	signal.o hfield.o token.o headerbody.o open.o lock.o wait.o qqtalk.o \
	libenv.a libgetline.a libstralloc.a libsubstdio.a liballoc.a \
	liberror.a libstr.a libfs.a

maildir2mbox: maildir2mbox.o prioq.o now.o open.o lock.o \
myctime.o datetime.o gfrom.o \
libgetline.a libstralloc.a libenv.a libsubstdio.a \
liballoc.a liberror.a libstr.a libfs.a load
	./load maildir2mbox prioq.o now.o open.o lock.o \
	myctime.o datetime.o gfrom.o \
	libgetline.a libstralloc.a libenv.a libsubstdio.a \
	liballoc.a liberror.a libstr.a libfs.a

maildirmake: maildirmake.o \
libsubstdio.a liballoc.a liberror.a libstr.a libfs.a load
	./load maildirmake \
	libsubstdio.a liballoc.a liberror.a libstr.a libfs.a

qlist2: qlist2.sh qmail-home warn-auto.sh
	cat warn-auto.sh qlist2.sh \
	  | sed s}HOME}"`./qmail-home`"} > qlist2
	chmod 755 qlist2

qmail-upq: qmail-upq.sh qmail-home warn-auto.sh
	cat warn-auto.sh qmail-upq.sh \
	  | sed s}HOME}"`./qmail-home`"} > qmail-upq
	chmod 755 qmail-upq

pinq: pinq.sh qmail-home warn-auto.sh
	cat warn-auto.sh pinq.sh \
	  | sed s}HOME}"`./qmail-home`"} > pinq
	chmod 755 pinq

elq: elq.sh qmail-home warn-auto.sh
	cat warn-auto.sh elq.sh \
	  | sed s}HOME}"`./qmail-home`"} > elq
	chmod 755 elq

qail: qail.sh qmail-home warn-auto.sh
	cat warn-auto.sh qail.sh \
	  | sed s}HOME}"`./qmail-home`"} > qail
	chmod 755 qail

qmail-alias: qmail-alias.o \
signal.o now.o seek.o open.o lock.o \
qqtalk.o wait.o myctime.o datetime.o quote.o gfrom.o \
libenv.a libgetopt.a libgetline.a libsubstdio.a libstralloc.a \
liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-alias \
	signal.o now.o seek.o open.o lock.o \
	qqtalk.o wait.o myctime.o datetime.o quote.o gfrom.o \
	libenv.a libgetopt.a libgetline.a libsubstdio.a libstralloc.a \
	liballoc.a liberror.a libstr.a libfs.a

qmail-clean: qmail-clean.o now.o signal.o fmtqfn.o \
libgetline.a libstralloc.a libsubstdio.a liballoc.a \
liberror.a libstr.a libfs.a load
	./load qmail-clean now.o signal.o fmtqfn.o \
	libgetline.a libstralloc.a libsubstdio.a liballoc.a \
	liberror.a libstr.a libfs.a

qmail-home: qmail-home.o \
libsubstdio.a liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-home \
	libsubstdio.a liballoc.a liberror.a libstr.a libfs.a

qmail-inject: qmail-inject.o \
hfield.o newfield.o datetime.o date822fmt.o now.o signal.o quote.o \
token.o control.o open.o headerbody.o qqtalk.o wait.o \
libenv.a libgetopt.a libgetline.a libsubstdio.a \
libstralloc.a liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-inject \
	hfield.o newfield.o datetime.o date822fmt.o now.o signal.o quote.o \
	token.o control.o open.o headerbody.o qqtalk.o wait.o \
	libenv.a libgetopt.a libgetline.a libsubstdio.a \
	libstralloc.a liballoc.a liberror.a libstr.a libfs.a

qmail-lspawn: qmail-lspawn.o \
coe.o open.o spawn.o wait.o case.o prot.o signal.o \
libgetline.a libstralloc.a libsubstdio.a liballoc.a \
liberror.a libstr.a libfs.a load
	./load qmail-lspawn \
	coe.o open.o spawn.o wait.o case.o prot.o signal.o \
	libgetline.a libstralloc.a libsubstdio.a liballoc.a \
	liberror.a libstr.a libfs.a

qmail-makectl: warn-auto.sh qmail-mctl.sh qmail-home
	cat warn-auto.sh qmail-mctl.sh \
	  | sed s}HOME}"`./qmail-home`"} > qmail-makectl
	chmod 755 qmail-makectl

qmail-mailq: load qmail-mailq.o \
fmtqfn.o readsubdir.o open.o datetime.o date822fmt.o \
libgetline.a libsubstdio.a libstralloc.a liballoc.a liberror.a \
libstr.a libfs.a
	./load qmail-mailq \
	fmtqfn.o readsubdir.o open.o datetime.o date822fmt.o \
	libgetline.a libsubstdio.a libstralloc.a liballoc.a liberror.a \
	libstr.a libfs.a

qmail-queue: qmail-queue.o \
signal.o triggerpull.o datetime.o fmtqfn.o \
date822fmt.o now.o ndelay.o open.o seek.o \
libsubstdio.a liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-queue \
	signal.o triggerpull.o datetime.o fmtqfn.o \
	date822fmt.o now.o ndelay.o open.o seek.o \
	libsubstdio.a liballoc.a liberror.a libstr.a libfs.a

qmail-rspawn: qmail-rspawn.o coe.o open.o spawn.o wait.o signal.o \
tcpto_clean.o \
libgetline.a libstralloc.a libsubstdio.a liballoc.a \
liberror.a libstr.a libfs.a load
	./load qmail-rspawn spawn.o signal.o \
	tcpto_clean.o \
	coe.o open.o wait.o \
	libgetline.a libstralloc.a libsubstdio.a liballoc.a \
	liberror.a libstr.a libfs.a

qmail-remote: qmail-remote.o \
signal.o dns.o ipme.o ip.o tcpto.o lock.o seek.o \
ipalloc.o control.o now.o open.o case.o quote.o \
libgetline.a libstralloc.a libsubstdio.a \
liballoc.a liberror.a libstr.a libfs.a loaddns
	./loaddns qmail-remote \
	signal.o control.o dns.o ipme.o ip.o tcpto.o lock.o seek.o \
	ipalloc.o now.o open.o case.o quote.o \
	libgetline.a libstralloc.a libsubstdio.a \
	liballoc.a liberror.a libstr.a libfs.a

qmail-send: qmail-send.o \
trigger.o control.o qsutil.o signal.o constmap.o quote.o fmtqfn.o \
newfield.o now.o datetime.o date822fmt.o seek.o ndelay.o readsubdir.o \
open.o lock.o case.o prioq.o qqtalk.o wait.o \
libgetline.a libstralloc.a libsubstdio.a \
liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-send \
	trigger.o control.o qsutil.o signal.o constmap.o quote.o fmtqfn.o \
	newfield.o now.o datetime.o date822fmt.o seek.o ndelay.o readsubdir.o \
	open.o lock.o case.o prioq.o qqtalk.o wait.o \
	libgetline.a libstralloc.a libsubstdio.a \
	liballoc.a liberror.a libstr.a libfs.a

qmail-check: qmail-check.o open.o \
libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-check open.o \
	libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a

qmail-setup: qmail-setup.o open.o \
libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-setup open.o \
	libsubstdio.a libstralloc.a liballoc.a liberror.a libstr.a libfs.a

qmail-smtpd: qmail-smtpd.o \
ipme.o ip.o ipalloc.o \
control.o newfield.o datetime.o date822fmt.o signal.o \
now.o open.o case.o qqtalk.o wait.o constmap.o \
libgetline.a libstralloc.a libsubstdio.a libenv.a \
liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-smtpd \
	ipme.o ip.o ipalloc.o \
	control.o newfield.o datetime.o date822fmt.o signal.o \
	now.o open.o case.o qqtalk.o wait.o constmap.o \
	libgetline.a libstralloc.a libsubstdio.a libenv.a \
	liballoc.a liberror.a libstr.a libfs.a

qmail-start: qmail-start.o prot.o \
libstralloc.a libenv.a liballoc.a liberror.a libstr.a libfs.a load
	./load qmail-start prot.o \
	libstralloc.a libenv.a liballoc.a liberror.a libstr.a libfs.a

sendmail: sendmail.o \
libenv.a libgetopt.a libsubstdio.a \
liballoc.a liberror.a libstr.a libfs.a load
	./load sendmail \
	libenv.a libgetopt.a libsubstdio.a \
	liballoc.a liberror.a libstr.a libfs.a

printuids: printuids.o \
libsubstdio.a liballoc.a liberror.a libstr.a libfs.a load
	./load printuids \
	libsubstdio.a liballoc.a liberror.a libstr.a libfs.a


qmail-alias.o: qmail-alias.c qlx.h qqtalk.h now.h seek.h open.h \
fork.h conf-unusual.h \
myctime.h datetime.h lock.h wait.h signal.h quote.h gfrom.h \
env.h substdio.h getline.h subfd.h \
fmt.h byte.h sgetopt.h alloc.h error.h stralloc.h str.h \
compile
	./compile qmail-alias.c

qmail-clean.o: qmail-clean.c \
now.h conf-home.h direntry.h signal.h fmtqfn.h fmt.h scan.h \
str.h getline.h stralloc.h substdio.h byte.h error.h compile
	./compile qmail-clean.c

qmail-home.o: qmail-home.c conf-home.h \
substdio.h compile
	./compile qmail-home.c

qmail-inject.o: qmail-inject.c \
hfield.h newfield.h now.h token.h control.h conf-home.h qqtalk.h signal.h \
headerbody.h datetime.h substdio.h stralloc.h \
subfd.h sgetopt.h getline.h alloc.h str.h env.h error.h compile
	./compile qmail-inject.c

qmail-mailq.o: compile qmail-mailq.c \
fmtqfn.h readsubdir.h open.h readwrite.h datetime.h date822fmt.h \
exit.h getline.h substdio.h stralloc.h subfd.h fmt.h str.h
	./compile qmail-mailq.c

qmail-lspawn.o: qmail-lspawn.c \
qlx.h conf-home.h conf-user.h auto-uids.h wait.h case.h prot.h \
fork.h \
substdio.h error.h compile
	./compile qmail-lspawn.c

qmail-queue.o: qmail-queue.c \
triggerpull.h conf-home.h auto-uids.h qqx.h fmtqfn.h \
date822fmt.h now.h open.h signal.h \
substdio.h fmt.h alloc.h str.h compile
	./compile qmail-queue.c

qmail-rspawn.o: qmail-rspawn.c wait.h tcpto.h \
fork.h \
substdio.h error.h compile
	./compile qmail-rspawn.c

qmail-remote.o: qmail-remote.c \
dns.h ipme.h ip.h ipalloc.h tcpto.h \
now.h conf-home.h control.h quote.h select.h \
getline.h stralloc.h substdio.h subfd.h \
scan.h error.h alloc.h byte.h str.h compile
	./compile qmail-remote.c

qmail-send.o: qmail-send.c \
trigger.h conf-home.h coe.h qsutil.h select.h \
signal.h constmap.h quote.h fmtqfn.h readsubdir.h \
qqx.h newfield.h now.h seek.h open.h direntry.h ndelay.h \
control.h lock.h case.h prioq.h qqtalk.h \
getline.h substdio.h str.h stralloc.h fmt.h alloc.h error.h scan.h compile
	./compile qmail-send.c

qmail-check.o: qmail-check.c \
conf-home.h auto-uids.h open.h conf-unusual.h fmt.h \
subfd.h substdio.h error.h compile
	./compile qmail-check.c

qmail-start.o: qmail-start.c \
conf-home.h auto-uids.h prot.h \
fork.h \
stralloc.h env.h error.h compile
	./compile qmail-start.c

qmail-setup.o: qmail-setup.c \
conf-home.h auto-uids.h open.h conf-unusual.h fmt.h \
subfd.h substdio.h stralloc.h error.h compile
	./compile qmail-setup.c

qmail-smtpd.o: qmail-smtpd.c \
ipme.h ip.h ipalloc.h conf-home.h qqx.h control.h newfield.h constmap.h \
now.h qqtalk.h signal.h \
getline.h stralloc.h substdio.h alloc.h error.h byte.h str.h env.h compile
	./compile qmail-smtpd.c

sendmail.o: sendmail.c conf-home.h \
env.h sgetopt.h substdio.h subfd.h alloc.h compile
	./compile sendmail.c

spawn.o: spawn.c \
select.h conf-home.h signal.h conf-unusual.h \
open.h coe.h wait.h auto-uids.h \
str.h byte.h getline.h stralloc.h substdio.h error.h compile
	./compile spawn.c

datetime.o: datetime.c datetime.h compile
	./compile datetime.c

myctime.o: myctime.c myctime.h datetime.h fmt.h compile
	./compile myctime.c

newfield.o: newfield.c newfield.h datetime.h \
fmt.h alloc.h compile
	./compile newfield.c

date822fmt.o: date822fmt.c date822fmt.h \
fmt.h datetime.h compile
	./compile date822fmt.c

seek.o: seek.c seek.h compile
	./compile seek.c

fmtqfn.o: compile fmtqfn.c fmtqfn.h fmt.h conf-unusual.h
	./compile fmtqfn.c

gfrom.o: gfrom.c gfrom.h \
str.h compile
	./compile gfrom.c

headerbody.o: headerbody.c headerbody.h hfield.h \
stralloc.h substdio.h getline.h compile
	./compile headerbody.c

tcpto.o: tcpto.c tcpto.h \
open.h readwrite.h now.h datetime.h lock.h seek.h ip.h
	./compile tcpto.c

tcpto_clean.o: tcpto_clean.c tcpto.h open.h substdio.h readwrite.h
	./compile tcpto_clean.c

qsutil.o: qsutil.c qsutil.h \
stralloc.h substdio.h compile
	./compile qsutil.c

tcp-env.o: tcp-env.c dns.h ip.h remoteinfo.h case.h signal.h \
byte.h stralloc.h str.h env.h fmt.h subgetopt.h compile
	./compile tcp-env.c

readsubdir.o: compile readsubdir.c readsubdir.h conf-unusual.h \
direntry.h fmt.h str.h scan.h
	./compile readsubdir.c

remoteinfo.o: remoteinfo.c remoteinfo.h \
byte.h substdio.h ip.h fmt.h compile
	./compile remoteinfo.c

triggerpull.o: triggerpull.c triggerpull.h open.h ndelay.h compile
	./compile triggerpull.c

trigger.o: trigger.c trigger.h \
open.h select.h auto-hasnpbg1.h \
compile
	./compile trigger.c

coe.o: coe.c coe.h compile
	./compile coe.c

quote.o: quote.c quote.h \
str.h stralloc.h compile
	./compile quote.c

tokenize.o: tokenize.c token.h \
getline.h stralloc.h substdio.h subfd.h error.h alloc.h compile
	./compile tokenize.c

token.o: token.c token.h \
stralloc.h alloc.h str.h compile
	./compile token.c

hfield.o: hfield.c hfield.h compile
	./compile hfield.c

case.o: case.c case.h compile
	./compile case.c

dnsdoe.o: dnsdoe.c dnsdoe.h dns.h \
subfd.h substdio.h compile
	./compile dnsdoe.c

dnsfq.o: dnsfq.c dns.h dnsdoe.h ip.h ipalloc.h \
subfd.h substdio.h stralloc.h compile
	./compile dnsfq.c

dnsip.o: dnsip.c dns.h dnsdoe.h ip.h ipalloc.h \
subfd.h substdio.h stralloc.h compile
	./compile dnsip.c

dnscname.o: dnscname.c dns.h dnsdoe.h \
subfd.h substdio.h stralloc.h compile
	./compile dnscname.c

dnsptr.o: dnsptr.c dns.h dnsdoe.h ip.h \
subfd.h substdio.h stralloc.h str.h scan.h compile
	./compile dnsptr.c

dnsmxip.o: dnsmxip.c dns.h dnsdoe.h now.h ip.h ipalloc.h \
subfd.h substdio.h stralloc.h fmt.h compile
	./compile dnsmxip.c

dns.o: dns.c dns.h ip.h ipalloc.h case.h \
fmt.h scan.h alloc.h str.h stralloc.h compile
	./compile dns.c

ipmeprint.o: ipmeprint.c ip.h ipme.h compile
	./compile ipmeprint.c

ipme.o: ipme.c ipme.h byte.h ip.h ipalloc.h auto-hassalen.h compile
	./compile ipme.c

auto-hassgact.h: trysgact.c compile load
	( ( ./compile trysgact.c && ./load trysgact ) >/dev/null 2>&1 \
	&& echo \#define HASSIGACTION 1 || exit 0 ) > auto-hassgact.h

auto-hassgprm.h: trysgprm.c compile load
	( ( ./compile trysgprm.c && ./load trysgprm ) >/dev/null 2>&1 \
	&& echo \#define HASSIGPROCMASK 1 || exit 0 ) > auto-hassgprm.h

auto-hasnpbg1.h: trynpbg1.c compile load open.o select.h 
	( ( ./compile trynpbg1.c && ./load trynpbg1 open.o \
	&& ./trynpbg1 ) >/dev/null 2>&1 \
	&& echo \#define HASNAMEDPIPEBUG1 1 || exit 0 ) > auto-hasnpbg1.h

auto-haswaitp.h: trywaitp.c compile load
	( ( ./compile trywaitp.c && ./load trywaitp ) >/dev/null 2>&1 \
	&& echo \#define HASWAITPID 1 || exit 0 ) > auto-haswaitp.h

auto-hasflock.h: tryflock.c compile load
	( ( ./compile tryflock.c && ./load tryflock ) >/dev/null 2>&1 \
	&& echo \#define HASFLOCK 1 || exit 0 ) > auto-hasflock.h

fork.h: tryvfork.c compile load fork.h1 fork.h2
	( ( ./compile tryvfork.c && ./load tryvfork ) >/dev/null 2>&1 \
	&& cat fork.h2 || cat fork.h1 ) > fork.h

auto-hasshsgr.h: tryshsgr.c chkshsgr compile load
	./chkshsgr || ( cat warn-shsgr; exit 1 )
	( ( ./compile tryshsgr.c && ./load tryshsgr \
	&& ./tryshsgr ) >/dev/null 2>&1 \
	&& echo \#define HASSHORTSETGROUPS 1 || exit 0 ) > auto-hasshsgr.h

chkshsgr: chkshsgr.o load
	./load chkshsgr

chkshsgr.o: chkshsgr.c compile
	./compile chkshsgr.c

auto-hassalen.h: trysalen.c compile
	( ./compile trysalen.c >/dev/null 2>&1 \
	&& echo \#define HASSALEN 1 || exit 0 ) > auto-hassalen.h

direntry.h: compile trydrent.c direntry.h1 direntry.h2
	( ./compile trydrent.c >/dev/null 2>&1 \
	&& cat direntry.h2 || cat direntry.h1 ) > direntry.h

select.h: trysysel.c compile select.h1 select.h2
	( ./compile trysysel.c >/dev/null 2>&1 \
	&& cat select.h2 || cat select.h1 ) > select.h

auto-uids.h: printuids
	./printuids > temp-uids.h
	mv temp-uids.h auto-uids.h

printuids.o: printuids.c conf-user.h \
subfd.h substdio.h fmt.h compile
	./compile printuids.c

ipalloc.o: compile ipalloc.c ipalloc.h \
ip.h alloc.h
	./compile ipalloc.c

ip.o: ip.c ip.h \
fmt.h scan.h compile
	./compile ip.c

ndelay.o: ndelay.c ndelay.h compile
	./compile ndelay.c

lock.o: lock.c lock.h auto-hasflock.h compile
	./compile lock.c

signal.o: signal.c signal.h auto-hassgact.h auto-hassgprm.h compile
	./compile signal.c

prioq.o: prioq.c prioq.h compile
	./compile prioq.c

qqtalk.o: qqtalk.c qqtalk.h \
qqx.h wait.h \
fork.h \
substdio.h error.h compile
	./compile qqtalk.c

prot.o: prot.c prot.h auto-hasshsgr.h compile
	./compile prot.c

wait.o: wait.c wait.h auto-haswaitp.h error.h compile
	./compile wait.c

open.o: open.c open.h compile
	./compile open.c

now.o: now.c now.h datetime.h compile
	./compile now.c

constmap.o: constmap.c constmap.h alloc.h case.h compile
	./compile constmap.c

control.o: control.c control.h open.h \
getline.h stralloc.h substdio.h error.h alloc.h scan.h compile
	./compile control.c

qreceipt.o: qreceipt.c \
signal.h hfield.h token.h headerbody.h open.h quote.h qqtalk.h \
env.h substdio.h stralloc.h subfd.h getline.h alloc.h str.h error.h compile
	./compile qreceipt.c

qsmhook.o: qsmhook.c wait.h \
alloc.h stralloc.h error.h byte.h str.h \
fork.h \
subfd.h env.h sgetopt.h substdio.h compile
	./compile qsmhook.c

forward.o: compile forward.c \
signal.h env.h qqtalk.h stralloc.h subfd.h substdio.h
	./compile forward.c

qbiff.o: qbiff.c \
stralloc.h substdio.h subfd.h headerbody.h hfield.h \
byte.h str.h env.h open.h compile
	./compile qbiff.c

qlist.o: qlist.c \
signal.h hfield.h token.h headerbody.h open.h lock.h qqtalk.h \
env.h substdio.h stralloc.h subfd.h getline.h alloc.h str.h error.h compile
	./compile qlist.c

maildir2mbox.o: maildir2mbox.c \
open.h lock.h now.h datetime.h myctime.h gfrom.h \
prioq.h direntry.h \
getline.h str.h stralloc.h env.h error.h subfd.h substdio.h compile
	./compile maildir2mbox.c

maildirmake.o: maildirmake.c \
error.h subfd.h substdio.h compile
	./compile maildirmake.c


libgetline.a: getline.o getline2.o makelib
	./makelib libgetline.a getline.o getline2.o

libsubstdio.a: makelib \
substdio.o substdi.o substdo.o \
subfderr.o subfdout.o subfdin.o substdio_copy.o
	./makelib libsubstdio.a \
	substdio.o substdi.o substdo.o \
	subfderr.o subfdout.o subfdin.o substdio_copy.o

liballoc.a: alloc.o alloc_re.o makelib
	./makelib liballoc.a alloc.o alloc_re.o

libstr.a: str_len.o str_diff.o str_diffn.o str_cpy.o str_chr.o str_rchr.o \
byte_chr.o byte_rchr.o byte_diff.o byte_copy.o byte_cr.o byte_zero.o makelib
	./makelib libstr.a \
	str_len.o str_diff.o str_diffn.o str_cpy.o str_chr.o str_rchr.o \
	byte_chr.o byte_rchr.o byte_diff.o byte_copy.o byte_cr.o byte_zero.o

libstralloc.a: stralloc_eady.o stralloc_copy.o stralloc_opyb.o \
stralloc_cat.o stralloc_catb.o \
stralloc_opys.o stralloc_cats.o stralloc_pend.o makelib
	./makelib libstralloc.a stralloc_eady.o stralloc_copy.o \
	stralloc_opyb.o stralloc_catb.o \
	stralloc_cat.o stralloc_opys.o stralloc_cats.o stralloc_pend.o

libenv.a: env.o envread.o makelib
	./makelib libenv.a env.o envread.o

libfs.a: fmt_strn.o fmt_str.o fmt_uint.o fmt_uint0.o fmt_ulong.o \
scan_nbblong.o scan_ulong.o makelib
	./makelib libfs.a fmt_strn.o fmt_str.o fmt_uint.o fmt_uint0.o fmt_ulong.o \
	scan_nbblong.o scan_ulong.o

libgetopt.a: subgetopt.o sgetopt.o makelib
	./makelib libgetopt.a subgetopt.o sgetopt.o

liberror.a: error.o error_temp.o makelib
	./makelib liberror.a error.o error_temp.o


error.o: error.c error.h compile
	./compile error.c

error_temp.o: error_temp.c error.h compile
	./compile error_temp.c

subfdin.o: subfdin.c subfd.h substdio.h readwrite.h compile
	./compile subfdin.c

subfdout.o: subfdout.c subfd.h substdio.h readwrite.h compile
	./compile subfdout.c

subfderr.o: subfderr.c subfd.h substdio.h readwrite.h compile
	./compile subfderr.c

substdi.o: substdi.c substdio.h byte.h error.h compile
	./compile substdi.c

substdo.o: substdo.c substdio.h str.h byte.h error.h compile
	./compile substdo.c

substdio_copy.o: substdio_copy.c substdio.h compile
	./compile substdio_copy.c

substdio.o: substdio.c substdio.h compile
	./compile substdio.c

byte_rchr.o: byte_rchr.c byte.h compile
	./compile byte_rchr.c

byte_chr.o: byte_chr.c byte.h compile
	./compile byte_chr.c

byte_diff.o: byte_diff.c byte.h compile
	./compile byte_diff.c

byte_copy.o: byte_copy.c byte.h compile
	./compile byte_copy.c

byte_cr.o: byte_cr.c byte.h compile
	./compile byte_cr.c

byte_zero.o: byte_zero.c byte.h compile
	./compile byte_zero.c

alloc.o: alloc.c alloc.h error.h compile
	./compile alloc.c

alloc_re.o: alloc_re.c alloc.h byte.h compile
	./compile alloc_re.c

stralloc_pend.o: stralloc_pend.c stralloc.h alloc.h compile
	./compile stralloc_pend.c

stralloc_eady.o: stralloc_eady.c stralloc.h alloc.h compile
	./compile stralloc_eady.c

stralloc_copy.o: stralloc_copy.c stralloc.h alloc.h byte.h compile
	./compile stralloc_copy.c

stralloc_opyb.o: stralloc_opyb.c stralloc.h alloc.h byte.h str.h compile
	./compile stralloc_opyb.c

stralloc_opys.o: stralloc_opys.c stralloc.h alloc.h byte.h str.h compile
	./compile stralloc_opys.c

stralloc_cat.o: stralloc_cat.c stralloc.h alloc.h byte.h compile
	./compile stralloc_cat.c

stralloc_catb.o: stralloc_catb.c stralloc.h alloc.h byte.h str.h compile
	./compile stralloc_catb.c

stralloc_cats.o: stralloc_cats.c stralloc.h alloc.h byte.h str.h compile
	./compile stralloc_cats.c

str_len.o: str_len.c str.h compile
	./compile str_len.c

str_rchr.o: str_rchr.c str.h compile
	./compile str_rchr.c

str_chr.o: str_chr.c str.h compile
	./compile str_chr.c

str_cpy.o: str_cpy.c str.h compile
	./compile str_cpy.c

str_diff.o: str_diff.c str.h compile
	./compile str_diff.c

str_diffn.o: str_diffn.c str.h compile
	./compile str_diffn.c

env.o: env.c env.h str.h alloc.h compile
	./compile env.c

envread.o: envread.c env.h str.h compile
	./compile envread.c

scan.o: scan.c scan.h compile
	./compile scan.c

fmt.o: fmt.c fmt.h compile
	./compile fmt.c

sgetopt.o: sgetopt.c sgetopt.h subgetopt.h substdio.h subfd.h compile
	./compile sgetopt.c

subgetopt.o: subgetopt.c subgetopt.h compile
	./compile subgetopt.c

getline.o: getline.c substdio.h alloc.h byte.h getline.h stralloc.h compile
	./compile getline.c

getline2.o: getline2.c substdio.h alloc.h byte.h getline.h stralloc.h compile
	./compile getline2.c

fmt_str.o: fmt_str.c fmt.h compile
	./compile fmt_str.c

fmt_strn.o: fmt_strn.c fmt.h compile
	./compile fmt_strn.c

fmt_uint0.o: fmt_uint0.c fmt.h compile
	./compile fmt_uint0.c

fmt_uint.o: fmt_uint.c fmt.h compile
	./compile fmt_uint.c

fmt_ulong.o: fmt_ulong.c fmt.h compile
	./compile fmt_ulong.c

scan_nbblong.o: scan_nbblong.c scan.h compile
	./compile scan_nbblong.c

scan_ulong.o: scan_ulong.c scan.h compile
	./compile scan_ulong.c


addresses.0: addresses.5
	$(NROFF) addresses.5 > addresses.0

envelopes.0: envelopes.5
	$(NROFF) envelopes.5 > envelopes.0

forward.0: forward.1
	$(NROFF) forward.1 > forward.0

forgeries.0: forgeries.7
	$(NROFF) forgeries.7 > forgeries.0

maildir.0: maildir.5
	$(NROFF) maildir.5 > maildir.0

maildirmake.0: maildirmake.1
	$(NROFF) maildirmake.1 > maildirmake.0

maildir2mbox.0: maildir2mbox.1
	$(NROFF) maildir2mbox.1 > maildir2mbox.0

qbiff.0: qbiff.1
	$(NROFF) qbiff.1 > qbiff.0

qlist.0: qlist.1
	$(NROFF) qlist.1 > qlist.0

qreceipt.0: qreceipt.1
	$(NROFF) qreceipt.1 > qreceipt.0

qmail-upgrade.0: qmail-upgrade.7
	$(NROFF) qmail-upgrade.7 > qmail-upgrade.0

qmail-start.0: qmail-start.8
	$(NROFF) qmail-start.8 > qmail-start.0

qmail-smtpd.0: qmail-smtpd.8
	$(NROFF) qmail-smtpd.8 > qmail-smtpd.0

qmail-send.0: qmail-send.8
	$(NROFF) qmail-send.8 > qmail-send.0

qmail-rspawn.0: qmail-rspawn.8
	$(NROFF) qmail-rspawn.8 > qmail-rspawn.0

qmail-remote.0: qmail-remote.8
	$(NROFF) qmail-remote.8 > qmail-remote.0

qmail-queue.0: qmail-queue.8
	$(NROFF) qmail-queue.8 > qmail-queue.0

qmail-lspawn.0: qmail-lspawn.8
	$(NROFF) qmail-lspawn.8 > qmail-lspawn.0

qmail-limits.0: qmail-limits.7
	$(NROFF) qmail-limits.7 > qmail-limits.0

qmail-inject.0: qmail-inject.8
	$(NROFF) qmail-inject.8 > qmail-inject.0

qmail-header.0: qmail-header.5
	$(NROFF) qmail-header.5 > qmail-header.0

qmail-alias.0: qmail-alias.8
	$(NROFF) qmail-alias.8 > qmail-alias.0

qmail-clean.0: qmail-clean.8
	$(NROFF) qmail-clean.8 > qmail-clean.0

qmail-command.0: qmail-command.8
	$(NROFF) qmail-command.8 > qmail-command.0

qmail-control.0: qmail-control.5
	$(NROFF) qmail-control.5 > qmail-control.0

tcp-env.0: tcp-env.1
	$(NROFF) tcp-env.1 > tcp-env.0

tcp-environ.0: tcp-environ.5
	$(NROFF) tcp-environ.5 > tcp-environ.0


shar: FILES
	shar -m `cat FILES` > qmail.shar
	chmod 400 qmail.shar
