# Don't edit Makefile!  Use conf-* for configuration.
#
# Generated by spac see http://untroubled.org/spac/

SHELL=/bin/sh

DEFAULT: all

all: libraries programs installer instcheck instshow

clean: TARGETS
	rm -f `cat TARGETS`

clean-spac: clean AUTOFILES
	rm -f `cat AUTOFILES`

compile: conf-cc conf-bgincs
	( bgincs=`head -n 1 conf-bgincs`; \
	  echo '#!/bin/sh'; \
	  echo 'source=$$1; shift'; \
	  echo 'base=`echo "$$source" | sed -e s:\\\\.c$$::`'; \
	  echo exec `head -n 1 conf-cc` -I. "-I'$${bgincs}'" '-o $${base}.o -c $$source $${1+"$$@"}'; \
	) >compile
	chmod 755 compile

conf_bin.c: conf-bin
	head -n 1 conf-bin | \
	  sed -e 's/"/\\"/g' \
	      -e 's/^/const char conf_bin[] = "/' \
	      -e 's/$$/";/' >conf_bin.c

conf_qmail.c: conf-qmail
	head -n 1 conf-qmail | \
	  sed -e 's/"/\\"/g' \
	      -e 's/^/const char conf_qmail[] = "/' \
	      -e 's/$$/";/' >conf_qmail.c

conf_qmail.o: compile conf_qmail.c
	./compile conf_qmail.c

cvm-validate.o: compile cvm-validate.c mailfront.h responses.h constants.h
	./compile cvm-validate.c

echo-backend.o: compile echo-backend.c mailfront.h responses.h constants.h
	./compile echo-backend.c

imapfront-auth: load imapfront-auth.o sasl-auth.o timeout.o socket.lib
	./load imapfront-auth sasl-auth.o timeout.o -lcvm-sasl -lcvm-client -lbg `cat socket.lib`

imapfront-auth.o: compile imapfront-auth.c sasl-auth.h
	./compile imapfront-auth.c

installer: load insthier.o
	./load insthier -lbg-installer
	mv insthier installer

instcheck: load insthier.o
	./load insthier -lbg-instcheck
	mv insthier instcheck

insthier.o: compile insthier.c conf_bin.c
	./compile insthier.c

instshow: load insthier.o
	./load insthier -lbg-instshow
	mv insthier instshow

iobytes.o: compile iobytes.c
	./compile iobytes.c

libraries: qmail.a pop3.a qmqp.a qmtp.a smtp.a

load: conf-ld conf-bglibs
	( bglibs=`head -n 1 conf-bglibs`; \
	  echo '#!/bin/sh';\
	  echo 'main="$$1"; shift';\
	  echo exec `head -n 1 conf-ld` -L. "-L'$${bglibs}'" '-o "$$main" "$$main.o" $${1+"$$@"}' -lbg-sysdeps; \
	) >load
	chmod 755 load

mailrules.o: compile mailrules.c mailfront.h responses.h constants.h mailrules.h
	./compile mailrules.c

makelib: 
	( echo '#!/bin/sh'; \
	  echo 'main="$$1"; shift';\
	  echo 'rm -f "$$main"';\
	  echo 'ar cr "$$main" $${1+"$$@"}';\
	  echo 'ranlib "$$main"';\
	) >makelib
	chmod 755 makelib

netstring.o: compile netstring.c mailfront.h responses.h constants.h
	./compile netstring.c

patterns.o: compile patterns.c mailfront.h responses.h constants.h mailrules.h
	./compile patterns.c

pop3-mainloop.o: compile pop3-mainloop.c pop3.h constants.h
	./compile pop3-mainloop.c

pop3-response.o: compile pop3-response.c pop3.h constants.h
	./compile pop3-response.c

pop3.a: makelib iobytes.o timeout.o pop3-mainloop.o pop3-response.o
	./makelib pop3.a iobytes.o timeout.o pop3-mainloop.o pop3-response.o

pop3front-auth: load pop3front-auth.o pop3.a sasl-auth.o socket.lib
	./load pop3front-auth pop3.a sasl-auth.o -lcvm-sasl -lcvm-client -lbg `cat socket.lib`

pop3front-auth.o: compile pop3front-auth.c sasl-auth.h pop3.h constants.h
	./compile pop3front-auth.c

pop3front-maildir: load pop3front-maildir.o pop3.a
	./load pop3front-maildir pop3.a -lbg 

pop3front-maildir.o: compile pop3front-maildir.c pop3.h constants.h
	./compile pop3front-maildir.c

programs: smtpfront-reject qmtpfront-qmail qmtpfront-echo qmqpfront-qmail smtpfront-echo smtpfront-qmail imapfront-auth qmqpfront-echo pop3front-auth pop3front-maildir

qmail-backend.o: compile qmail-backend.c mailfront.h responses.h constants.h mailrules.h conf_qmail.h
	./compile qmail-backend.c

qmail-validate.o: compile qmail-validate.c mailfront.h responses.h constants.h conf_qmail.h
	./compile qmail-validate.c

qmail.a: makelib qmail-backend.o qmail-validate.o conf_qmail.o
	./makelib qmail.a qmail-backend.o qmail-validate.o conf_qmail.o

qmqp-mainloop.o: compile qmqp-mainloop.c mailfront.h responses.h constants.h qmtp.h responses.h
	./compile qmqp-mainloop.c

qmqp.a: makelib iobytes.o mailrules.o netstring.o patterns.o responses.o std-handle.o timeout.o qmqp-mainloop.o qmtp-respond.o
	./makelib qmqp.a iobytes.o mailrules.o netstring.o patterns.o responses.o std-handle.o timeout.o qmqp-mainloop.o qmtp-respond.o

qmqpfront-echo: load qmqpfront-echo.o qmqp.a echo-backend.o sasl-auth.o socket.lib
	./load qmqpfront-echo qmqp.a echo-backend.o sasl-auth.o -lcvm-sasl -lcvm-client -lbg `cat socket.lib`

qmqpfront-echo.o: compile qmqpfront-echo.c mailfront.h responses.h constants.h smtp.h responses.h
	./compile qmqpfront-echo.c

qmqpfront-qmail: load qmqpfront-qmail.o qmqp.a qmail.a cvm-validate.o socket.lib
	./load qmqpfront-qmail qmqp.a qmail.a cvm-validate.o -lcvm-client -lbg `cat socket.lib`

qmqpfront-qmail.o: compile qmqpfront-qmail.c mailfront.h responses.h constants.h
	./compile qmqpfront-qmail.c

qmtp-mainloop.o: compile qmtp-mainloop.c mailfront.h responses.h constants.h qmtp.h responses.h
	./compile qmtp-mainloop.c

qmtp-respond.o: compile qmtp-respond.c mailfront.h responses.h constants.h qmtp.h responses.h
	./compile qmtp-respond.c

qmtp.a: makelib iobytes.o mailrules.o netstring.o patterns.o responses.o std-handle.o timeout.o qmtp-mainloop.o qmtp-respond.o
	./makelib qmtp.a iobytes.o mailrules.o netstring.o patterns.o responses.o std-handle.o timeout.o qmtp-mainloop.o qmtp-respond.o

qmtpfront-echo: load qmtpfront-echo.o qmtp.a echo-backend.o sasl-auth.o socket.lib
	./load qmtpfront-echo qmtp.a echo-backend.o sasl-auth.o -lcvm-sasl -lcvm-client -lbg `cat socket.lib`

qmtpfront-echo.o: compile qmtpfront-echo.c mailfront.h responses.h constants.h qmtp.h responses.h
	./compile qmtpfront-echo.c

qmtpfront-qmail: load qmtpfront-qmail.o qmtp.a qmail.a cvm-validate.o socket.lib
	./load qmtpfront-qmail qmtp.a qmail.a cvm-validate.o -lcvm-client -lbg `cat socket.lib`

qmtpfront-qmail.o: compile qmtpfront-qmail.c mailfront.h responses.h constants.h qmtp.h responses.h
	./compile qmtpfront-qmail.c

responses.o: compile responses.c responses.h
	./compile responses.c

sasl-auth.o: compile sasl-auth.c constants.h sasl-auth.h
	./compile sasl-auth.c

sasl-stub.o: compile sasl-stub.c sasl-auth.h
	./compile sasl-stub.c

smtp-commands.o: compile smtp-commands.c mailfront.h responses.h constants.h mailrules.h smtp.h responses.h sasl-auth.h
	./compile smtp-commands.c

smtp-mainloop.o: compile smtp-mainloop.c mailfront.h responses.h constants.h mailrules.h smtp.h responses.h sasl-auth.h
	./compile smtp-mainloop.c

smtp-respond.o: compile smtp-respond.c mailfront.h responses.h constants.h smtp.h responses.h
	./compile smtp-respond.c

smtp.a: makelib iobytes.o mailrules.o patterns.o responses.o std-handle.o timeout.o smtp-commands.o smtp-mainloop.o smtp-respond.o
	./makelib smtp.a iobytes.o mailrules.o patterns.o responses.o std-handle.o timeout.o smtp-commands.o smtp-mainloop.o smtp-respond.o

smtpfront-echo: load smtpfront-echo.o smtp.a echo-backend.o sasl-auth.o socket.lib
	./load smtpfront-echo smtp.a echo-backend.o sasl-auth.o -lcvm-sasl -lcvm-client -lbg `cat socket.lib`

smtpfront-echo.o: compile smtpfront-echo.c mailfront.h responses.h constants.h smtp.h responses.h
	./compile smtpfront-echo.c

smtpfront-qmail: load smtpfront-qmail.o smtp.a qmail.a cvm-validate.o sasl-auth.o socket.lib
	./load smtpfront-qmail smtp.a qmail.a cvm-validate.o sasl-auth.o -lcvm-sasl -lcvm-client -lbg `cat socket.lib`

smtpfront-qmail.o: compile smtpfront-qmail.c mailfront.h responses.h constants.h smtp.h responses.h
	./compile smtpfront-qmail.c

smtpfront-reject: load smtpfront-reject.o smtp.a sasl-stub.o
	./load smtpfront-reject smtp.a sasl-stub.o -lbg 

smtpfront-reject.o: compile smtpfront-reject.c mailfront.h responses.h constants.h smtp.h responses.h
	./compile smtpfront-reject.c

socket.lib: compile load trylib.c
	( ( ./compile trylib.c && ./load trylib -lsocket -lnsl ) >/dev/null 2>&1 \
	  && echo -lsocket -lnsl || exit 0 ) >socket.lib
	rm -f trylib.o trylib

std-handle.o: compile std-handle.c mailfront.h responses.h constants.h mailrules.h smtp.h responses.h
	./compile std-handle.c

timeout.o: compile timeout.c
	./compile timeout.c

