
# These programs require the following libraries to be installed:
#   1.  The GNU gdbm hashed database library
#
#   2.  Source or libraries from Stevens' _Unix Network Programming_
#       libunp.a unp.h
# 


all: captive_adduser captive_deluser captive_print captive_printuser captive_flush captive_cleanup captive_httpd captive_login.cgi captive_gui.cgi captive_logoff.cgi captive_squid_logs captive_squid.cgi



captive.o: captive.c captive.h
	gcc -Wall -c captive.c

# Command line tools for maintaining authorized user database

captive_adduser: captive_adduser.o captive.o
	gcc -Wall captive_adduser.o captive.o -lgdbm -o captive_adduser
captive_adduser.o: captive_adduser.c captive.h
	gcc -Wall -c captive_adduser.c
captive_deluser: captive_deluser.o captive.o
	gcc -Wall captive_deluser.o captive.o -lgdbm -o captive_deluser
captive_deluser.o: captive_deluser.c captive.h
	gcc -Wall -c captive_deluser.c
captive_print: captive_print.o captive.o
	gcc -Wall captive_print.o captive.o -lgdbm -o captive_print
captive_print.o: captive_print.c captive.h
	gcc -Wall -c captive_print.c
captive_printuser: captive_printuser.o captive.o
	gcc -Wall captive_printuser.o captive.o -lgdbm -o captive_printuser
captive_printuser.o: captive_printuser.c captive.h
	gcc -Wall -c captive_printuser.c
captive_flush: captive_flush.o captive.o
	gcc -Wall captive_flush.o captive.o -lgdbm -o captive_flush
captive_flush.o: captive_flush.c captive.h
	gcc -Wall -c captive_flush.c

# cron job to cleanup expired sessions
captive_cleanup: captive_cleanup.o captive.o
	gcc -Wall captive_cleanup.o captive.o -lgdbm -o captive_cleanup
captive_cleanup.o: captive_cleanup.c captive.h
	gcc -Wall -c captive_cleanup.c


# CGI program to process logins
captive_login.cgi: captive_login.o captive.o
	gcc -Wall captive_login.o captive.o -lgdbm -o captive_login.cgi
captive_login.o: captive_login.c captive.h
	gcc -Wall -c captive_login.c

# CGI program to process logoffs
captive_logoff.cgi: captive_logoff.o captive.o
	gcc -Wall captive_logoff.o captive.o -lgdbm -o captive_logoff.cgi
captive_logoff.o: captive_logoff.c captive.h
	gcc -Wall -c captive_logoff.c

# CGI program for GUI
captive_gui.cgi: captive_gui.o captive.o
	gcc -Wall captive_gui.o captive.o -lgdbm -o captive_gui.cgi
captive_gui.o: captive_gui.c captive.h
	gcc -Wall -c captive_gui.c

# Squid log processing program
captive_squid_logs: captive_squid_logs.o
	gcc -Wall captive_squid_logs.o -o captive_squid_logs
captive_squid_logs.o: captive_squid_logs.c captive.h
	gcc -Wall -c captive_squid_logs.c

captive_squid.cgi: captive_squid.o
	gcc -Wall captive_squid.o -o captive_squid.cgi
captive_squid.o: captive_squid.c captive.h
	gcc -Wall -c captive_squid.c


# Server process to listen on port 82 and serve up the login page
captive_httpd: captive_httpd.c
	gcc -Wall captive_httpd.c libunp.a -o captive_httpd

