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

SHELL=/bin/sh

DEFAULT: all

all: libraries programs docs

clean: TARGETS
	rm -f `cat TARGETS`

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

client_domain.o: compile client_domain.c v1client.h facts.h errors.h
	./compile client_domain.c

client_setenv.o: compile client_setenv.c v1client.h facts.h errors.h
	./compile client_setenv.c

client_setugid.o: compile client_setugid.c v1client.h facts.h errors.h
	./compile client_setugid.c

client_xfer_command.o: compile client_xfer_command.c v1client.h facts.h errors.h
	./compile client_xfer_command.c

client_xfer_local.o: compile client_xfer_local.c v1client.h facts.h errors.h protocol.h
	./compile client_xfer_local.c

client_xfer_udp.o: compile client_xfer_udp.c v1client.h facts.h errors.h protocol.h
	./compile client_xfer_udp.c

command.a: makelib module_command.o module_command_main.o module_request.o module_output.o facts.o
	./makelib command.a module_command.o module_command_main.o module_request.o module_output.o facts.o

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

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

cvm-benchclient: load cvm-benchclient.o v2client.a socket.lib
	./load cvm-benchclient v2client.a -lbg `cat socket.lib`

cvm-benchclient.o: compile cvm-benchclient.c v2client.h facts.h errors.h
	./compile cvm-benchclient.c

cvm-chain: load cvm-chain.o module.a v2client.a socket.lib s.lib
	./load cvm-chain module.a v2client.a -lbg `cat socket.lib` `cat s.lib`

cvm-chain.o: compile cvm-chain.c module.h credentials.h errors.h facts.h v2client.h facts.h errors.h
	./compile cvm-chain.c

cvm-checkpassword: load cvm-checkpassword.o v2client.a socket.lib
	./load cvm-checkpassword v2client.a -lbg `cat socket.lib`

cvm-checkpassword.o: compile cvm-checkpassword.c v2client.h facts.h errors.h
	./compile cvm-checkpassword.c

cvm-mysql: load cvm-mysql.o module.a sql.a crypt.lib
	./load cvm-mysql module.a sql.a -lbg -lpwcmp -L/usr/lib/mysql -lmysqlclient `cat crypt.lib`

cvm-mysql-local: load cvm-mysql-local.o cvm-mysql.o local.a sql.a crypt.lib
	./load cvm-mysql-local cvm-mysql.o local.a sql.a -lbg -lpwcmp -L/usr/lib/mysql -lmysqlclient `cat crypt.lib`

cvm-mysql-local.o: compile cvm-mysql-local.c
	./compile cvm-mysql-local.c

cvm-mysql-udp: load cvm-mysql-udp.o cvm-mysql.o udp.a sql.a crypt.lib
	./load cvm-mysql-udp cvm-mysql.o udp.a sql.a -lbg -lpwcmp -L/usr/lib/mysql -lmysqlclient `cat crypt.lib`

cvm-mysql-udp.o: compile cvm-mysql-udp.c
	./compile cvm-mysql-udp.c

cvm-mysql.o: compile cvm-mysql.c module.h credentials.h errors.h facts.h sql.h
	./compile cvm-mysql.c

cvm-pgsql: load cvm-pgsql.o module.a sql.a crypt.lib
	./load cvm-pgsql module.a sql.a -lbg -lpwcmp -lpq `cat crypt.lib`

cvm-pgsql-local: load cvm-pgsql-local.o cvm-pgsql.o local.a sql.a crypt.lib
	./load cvm-pgsql-local cvm-pgsql.o local.a sql.a -lbg -lpwcmp -lpq `cat crypt.lib`

cvm-pgsql-local.o: compile cvm-pgsql-local.c
	./compile cvm-pgsql-local.c

cvm-pgsql-udp: load cvm-pgsql-udp.o cvm-pgsql.o udp.a sql.a crypt.lib
	./load cvm-pgsql-udp cvm-pgsql.o udp.a sql.a -lbg -lpwcmp -lpq `cat crypt.lib`

cvm-pgsql-udp.o: compile cvm-pgsql-udp.c
	./compile cvm-pgsql-udp.c

cvm-pgsql.o: compile cvm-pgsql.c module.h credentials.h errors.h facts.h sql.h
	./compile cvm-pgsql.c

cvm-pwfile: load cvm-pwfile.o module.a crypt.lib socket.lib
	./load cvm-pwfile module.a -lbg -lpwcmp `cat crypt.lib` `cat socket.lib`

cvm-pwfile.o: compile cvm-pwfile.c module.h credentials.h errors.h facts.h
	./compile cvm-pwfile.c

cvm-qmail: load cvm-qmail.o getpwnam.o module.a qmail.a crypt.lib
	./load cvm-qmail getpwnam.o module.a qmail.a -lbg `cat crypt.lib`

cvm-qmail.o: compile cvm-qmail.c module.h credentials.h errors.h facts.h qmail.h
	./compile cvm-qmail.c

cvm-testclient: load cvm-testclient.o v2client.a socket.lib
	./load cvm-testclient v2client.a -lbg `cat socket.lib`

cvm-testclient.o: compile cvm-testclient.c v2client.h facts.h errors.h
	./compile cvm-testclient.c

cvm-unix: load cvm-unix.o getpwnam.o module.a crypt.lib shadow.lib s.lib socket.lib
	./load cvm-unix getpwnam.o module.a -lbg `cat crypt.lib` `cat shadow.lib` `cat s.lib` `cat socket.lib`

cvm-unix.o: compile cvm-unix.c module.h credentials.h errors.h facts.h
	./compile cvm-unix.c

cvm-v1benchclient: load cvm-v1benchclient.o v1client.a socket.lib
	./load cvm-v1benchclient v1client.a -lbg `cat socket.lib`

cvm-v1benchclient.o: compile cvm-v1benchclient.c v1client.h facts.h errors.h
	./compile cvm-v1benchclient.c

cvm-v1checkpassword: load cvm-v1checkpassword.o v1client.a socket.lib
	./load cvm-v1checkpassword v1client.a -lbg `cat socket.lib`

cvm-v1checkpassword.o: compile cvm-v1checkpassword.c v1client.h facts.h errors.h
	./compile cvm-v1checkpassword.c

cvm-v1testclient: load cvm-v1testclient.o v1client.a socket.lib
	./load cvm-v1testclient v1client.a -lbg `cat socket.lib`

cvm-v1testclient.o: compile cvm-v1testclient.c v1client.h facts.h errors.h
	./compile cvm-v1testclient.c

cvm-vchkpw: load cvm-vchkpw.o module.a crypt.lib shadow.lib s.lib socket.lib
	./load cvm-vchkpw module.a -L/usr/local/vpopmail/lib -L/var/vpopmail/lib -L/usr/local/lib/mysql -lbg -lvpopmail -lmysqlclient `cat crypt.lib` `cat shadow.lib` `cat s.lib` `cat socket.lib`

cvm-vchkpw.o: compile cvm-vchkpw.c module.h credentials.h errors.h facts.h
	./compile cvm-vchkpw.c

cvm-vmailmgr: load cvm-vmailmgr.o vmautoconvert.o vmlookup.o getpwnam.o module.a qmail.a socket.lib crypt.lib
	./load cvm-vmailmgr vmautoconvert.o vmlookup.o getpwnam.o module.a qmail.a -lbg `cat socket.lib` `cat crypt.lib`

cvm-vmailmgr-local: load cvm-vmailmgr-local.o cvm-vmailmgr.o vmautoconvert.o vmlookup.o getpwnam.o local.a qmail.a socket.lib crypt.lib
	./load cvm-vmailmgr-local cvm-vmailmgr.o vmautoconvert.o vmlookup.o getpwnam.o local.a qmail.a -lbg `cat socket.lib` `cat crypt.lib`

cvm-vmailmgr-local.o: compile cvm-vmailmgr-local.c
	./compile cvm-vmailmgr-local.c

cvm-vmailmgr-udp: load cvm-vmailmgr-udp.o cvm-vmailmgr.o vmautoconvert.o vmlookup.o getpwnam.o udp.a qmail.a socket.lib crypt.lib
	./load cvm-vmailmgr-udp cvm-vmailmgr.o vmautoconvert.o vmlookup.o getpwnam.o udp.a qmail.a -lbg `cat socket.lib` `cat crypt.lib`

cvm-vmailmgr-udp.o: compile cvm-vmailmgr-udp.c
	./compile cvm-vmailmgr-udp.c

cvm-vmailmgr.o: compile cvm-vmailmgr.c module.h credentials.h errors.h facts.h qmail.h cvm-vmailmgr.h
	./compile cvm-vmailmgr.c

docs: 

errors.o: compile errors.c errors.h
	./compile errors.c

facts.o: compile facts.c facts.h
	./compile facts.c

getpwnam.o: compile getpwnam.c module.h credentials.h errors.h facts.h
	./compile getpwnam.c

install: INSTHIER conf-bin conf-include conf-lib
	bg-installer -v <INSTHIER
	bg-installer -c <INSTHIER

libraries: v1client.a qmail.a sql.a udp.a command.a module.a local.a v2client.a sasl.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

local.a: makelib module_local.o module_local_main.o module_request.o module_output.o module_log.o facts.o
	./makelib local.a module_local.o module_local_main.o module_request.o module_output.o module_log.o facts.o

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

module.a: makelib facts.o module_command.o module_local.o module_log.o module_main.o module_output.o module_request.o module_udp.o
	./makelib module.a facts.o module_command.o module_local.o module_log.o module_main.o module_output.o module_request.o module_udp.o

module_command.o: compile module_command.c module.h credentials.h errors.h facts.h
	./compile module_command.c

module_command_main.o: compile module_command_main.c module.h credentials.h errors.h facts.h
	./compile module_command_main.c

module_local.o: compile module_local.c module.h credentials.h errors.h facts.h
	./compile module_local.c

module_local_main.o: compile module_local_main.c module.h credentials.h errors.h facts.h
	./compile module_local_main.c

module_log.o: compile module_log.c module.h credentials.h errors.h facts.h
	./compile module_log.c

module_main.o: compile module_main.c module.h credentials.h errors.h facts.h
	./compile module_main.c

module_output.o: compile module_output.c module.h credentials.h errors.h facts.h protocol.h
	./compile module_output.c

module_request.o: compile module_request.c module.h credentials.h errors.h facts.h protocol.h
	./compile module_request.c

module_udp.o: compile module_udp.c module.h credentials.h errors.h facts.h
	./compile module_udp.c

module_udp_main.o: compile module_udp_main.c module.h credentials.h errors.h facts.h
	./compile module_udp_main.c

mysql: cvm-mysql cvm-mysql-local cvm-mysql-udp

pgsql: cvm-pgsql cvm-pgsql-local cvm-pgsql-udp

programs: cvm-vmailmgr-udp sql-query-test cvm-testclient cvm-v1testclient cvm-checkpassword sasl-auth-test cvm-v1benchclient cvm-chain cvm-vmailmgr cvm-qmail cvm-pwfile cvm-unix cvm-vmailmgr-local cvm-benchclient cvm-v1checkpassword

qmail-domains.o: compile qmail-domains.c qmail.h
	./compile qmail-domains.c

qmail-dotfile.o: compile qmail-dotfile.c qmail.h
	./compile qmail-dotfile.c

qmail-init.o: compile qmail-init.c qmail.h
	./compile qmail-init.c

qmail-lookup.o: compile qmail-lookup.c module.h credentials.h errors.h facts.h qmail.h
	./compile qmail-lookup.c

qmail-users.o: compile qmail-users.c qmail.h
	./compile qmail-users.c

qmail.a: makelib qmail-domains.o qmail-dotfile.o qmail-init.o qmail-lookup.o qmail-users.o
	./makelib qmail.a qmail-domains.o qmail-dotfile.o qmail-init.o qmail-lookup.o qmail-users.o

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

sasl-auth-test: load sasl-auth-test.o sasl.a v2client.a
	./load sasl-auth-test sasl.a v2client.a -lbg 

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

sasl.a: makelib sasl_auth.o sasl_authenticate.o sasl_cram_md5.o sasl_init.o sasl_login.o sasl_plain.o sasl_start.o
	./makelib sasl.a sasl_auth.o sasl_authenticate.o sasl_cram_md5.o sasl_init.o sasl_login.o sasl_plain.o sasl_start.o

sasl_auth.o: compile sasl_auth.c sasl.h v2client.h facts.h errors.h
	./compile sasl_auth.c

sasl_authenticate.o: compile sasl_authenticate.c v2client.h facts.h errors.h credentials.h sasl.h sasl_internal.h
	./compile sasl_authenticate.c

sasl_cram_md5.o: compile sasl_cram_md5.c v2client.h facts.h errors.h sasl.h sasl_internal.h
	./compile sasl_cram_md5.c

sasl_init.o: compile sasl_init.c sasl.h sasl_internal.h
	./compile sasl_init.c

sasl_login.o: compile sasl_login.c sasl.h sasl_internal.h
	./compile sasl_login.c

sasl_plain.o: compile sasl_plain.c sasl.h sasl_internal.h
	./compile sasl_plain.c

sasl_start.o: compile sasl_start.c sasl.h sasl_internal.h
	./compile sasl_start.c

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

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

sql-auth.o: compile sql-auth.c module.h credentials.h errors.h facts.h sql.h
	./compile sql-auth.c

sql-query-test: load sql-query-test.o sql-query.o
	./load sql-query-test sql-query.o -lbg 

sql-query-test.o: compile sql-query-test.c credentials.h sql.h
	./compile sql-query-test.c

sql-query.o: compile sql-query.c module.h credentials.h errors.h facts.h sql.h
	./compile sql-query.c

sql.a: makelib sql-auth.o sql-query.o
	./makelib sql.a sql-auth.o sql-query.o

udp.a: makelib module_udp.o module_udp_main.o module_request.o module_output.o module_log.o facts.o
	./makelib udp.a module_udp.o module_udp_main.o module_request.o module_output.o module_log.o facts.o

v1client.a: makelib v1client.o client_domain.o client_setugid.o client_setenv.o client_xfer_command.o client_xfer_local.o client_xfer_udp.o errors.o facts.o
	./makelib v1client.a v1client.o client_domain.o client_setugid.o client_setenv.o client_xfer_command.o client_xfer_local.o client_xfer_udp.o errors.o facts.o

v1client.o: compile v1client.c v1client.h facts.h errors.h protocol.h
	./compile v1client.c

v2client.a: makelib v2client.o v2client_wrappers.o client_domain.o client_setugid.o client_setenv.o client_xfer_command.o client_xfer_local.o client_xfer_udp.o errors.o facts.o
	./makelib v2client.a v2client.o v2client_wrappers.o client_domain.o client_setugid.o client_setenv.o client_xfer_command.o client_xfer_local.o client_xfer_udp.o errors.o facts.o

v2client.o: compile v2client.c v2client.h facts.h errors.h credentials.h protocol.h
	./compile v2client.c

v2client_wrappers.o: compile v2client_wrappers.c v2client.h facts.h errors.h credentials.h
	./compile v2client_wrappers.c

vmautoconvert.o: compile vmautoconvert.c module.h credentials.h errors.h facts.h qmail.h cvm-vmailmgr.h
	./compile vmautoconvert.c

vmlookup.o: compile vmlookup.c module.h credentials.h errors.h facts.h qmail.h cvm-vmailmgr.h
	./compile vmlookup.c

