# qcontrol makefile a.oliver <oliber@aiko.upd.edu.ph>

# the quake directory
QUAKEPATH		= /usr/local/games/quake

# comment this out if you are using the shareware version
REG=-DREGISTERED

# uncomment the ff. 3 lines if you want to print the player ip at connection
# you must install a QuakeC patch (qc directory) for printing connection info
# and set loglevel to 7 (or at least log console output)
#USERIP=-DUSERIP
#USERIPLIBS=qtcp-v1.01/libqtcp.a
#QTCPMAKE=@(cd $(QTCP); make lib)

CC	= gcc -Wall
DEBUG	= -O

# Linux
LIBS=
CFLAGS= $(DEBUG)

# Solaris
#LIBS=-lnsl -lsocket
#CFLAGS= $(DEBUG) -DSOLARIS

# no need to change after this line
OBJS	= qcontrol.o server.o sock.o sockio.o node.o config.o lib.o command.o log.o pass.o userip.o
SRCS	= command.c command.h config.c config.h lib.c lib.h log.c log.h \
		node.c node.h pass.c pass.h qcontrol.c qcontrol.h server.c server.h \
		sock.c sock.h sockio.c sockio.h userip.c \
		Makefile qcontrol.cfg qcontrol.ini \
		qcontrol.gif qcontrol.html qcontrol.txt qcentre qc

VERSION	= 0.04
QTCP=qtcp-v1.01

all: qcontrol quaked

qcontrol.o: qcontrol.c qcontrol.h server.h log.h
	$(CC) -c qcontrol.c $(CFLAGS) -DQUAKEPATH=\"$(QUAKEPATH)\" $(REG)

userip.o: userip.c Makefile
	$(CC) -c userip.c $(CFLAGS) $(USERIP)

log.o: log.c Makefile
	$(CC) -c log.c $(CFLAGS) $(USERIP)

qcontrol: $(OBJS)
	$(QTCPMAKE)
	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(USERIPLIBS)

quaked: Makefile
	@echo "#!/bin/sh" > quaked
	@echo "while true" >> quaked
	@echo "do" >> quaked
	@echo "	cd $(QUAKEPATH)" >> quaked
	@echo "	qcontrol -ini $(QUAKEPATH)/qcontrol.ini -exename xquake" >> quaked
	@echo '	if [ "$$?" = 99 ]; then' >> quaked
	@echo "	  exit" >> quaked
	@echo "	fi" >> quaked
	@echo "	sleep 30" >> quaked
	@echo "done &" >> quaked
	chmod +x quaked

install: all
	cp qcontrol qcontrol.ini qcontrol.cfg quaked $(QUAKEPATH)
	chmod go-rwx $(QUAKEPATH)/qcontrol
	chmod go-rwx $(QUAKEPATH)/qcontrol.ini

PACKAGE=qcontrol
DIR=$(PACKAGE)-v$(VERSION)
TARFILE=$(DIR).tar

tar:
	rm -fr $(DIR)
	mkdir $(DIR)
	cp -rp $(SRCS) $(QTCP) $(DIR)
	tar cvf $(TARFILE) $(DIR)
	gzip -9 $(TARFILE)
	@ls -l "$(TARFILE).gz"

clean:
	rm -f $(OBJS)
