# 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`

client.a: makelib client.o client_domain.o client_setugid.o client_setenv.o facts.o
	./makelib client.a client.o client_domain.o client_setugid.o client_setenv.o facts.o

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

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

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

client_setugid.o: compile client_setugid.c client.h facts.h errors.h
	./compile client_setugid.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 -1 conf-bgincs`; \
	  echo '#!/bin/sh'; \
	  echo 'source=$$1; shift'; \
	  echo 'base=`echo "$$source" | sed -e s:\\\\.c$$::`'; \
	  echo exec `head -1 conf-cc` -I. "-I'$${bgincs}'" '-o $${base}.o -c $$source $${1+"$$@"}'; \
	) >compile
	chmod 755 compile

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

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 client.a socket.lib
	./load cvm-benchclient client.a `cat socket.lib` -lbg-net

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

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

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

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

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

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

cvm-testclient.o: compile cvm-testclient.c client.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 `cat crypt.lib` `cat shadow.lib` `cat s.lib` `cat socket.lib` -lbg-net

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

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

getpwnam.o: compile getpwnam.c module.h facts.h errors.h
	./compile getpwnam.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_home.c
	./compile insthier.c

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

libraries: client.a udp.a local.a command.a module.a sasl.a

load: conf-ld conf-bglibs
	( bglibs=`head -1 conf-bglibs`; \
	  echo '#!/bin/sh';\
	  echo 'main="$$1"; shift';\
	  echo exec `head -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 facts.h errors.h
	./compile module_command.c

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

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

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

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

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

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

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

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

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

programs: cvm-unix cvm-pwfile cvm-benchclient cvm-testclient cvm-checkpassword

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.a: makelib sasl_authenticate.o sasl_cram_md5.o sasl_init.o sasl_login.o sasl_plain.o sasl_start.o
	./makelib sasl.a sasl_authenticate.o sasl_cram_md5.o sasl_init.o sasl_login.o sasl_plain.o sasl_start.o

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

sasl_cram_md5.o: compile sasl_cram_md5.c client.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

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

