# Makefile for wbserver
# authors: sh@diploma.ru (Sergey Hlupnov) alex_1@udmnet.ru (Alex Inozemcev)

CC = gcc
SHELL= /bin/bash
#for WB277R0 need to define -DWB277R0
CFLAGS= -g -Wall
# -DWB277R0
LIBS= -lm

###############################for AIX OS
#CFLAGS= -DAIX

###############################for Solaris OS
#CFLAGS= -DSOLARIS
#LIBS= -lsocket -lnsl -lm

###############################for FreeBSD


all: p_server

id:
	@rm -f id.h
	@echo \#define WHO \"`whoami`\" >> id.h
	@echo \#define MY_HOST_NAME \"`hostname`\" >> id.h
	@echo \#define DATE \"`date "+%d/%m/%Y"`\" >> id.h
	@echo \#define TIME \"`date "+%H:%M:%S"`\" >> id.h

p_server: server.h p_server.c id \
	arnalst.o checkcrc.o city.o command.o commandos.o config.o countresets.o cv.o dron.o \
	fau.o files.o fly.o ground.o ground_util.o gunnery.o gun_gunnery.o \
	gun_rgunnery.o gun_util.o hmack.o login.o medal.o network.o plane.o \
	plane_util.o p_server.o radio.o score.o score_util.o squad.o stat.o \
	strategy.o test_alt.o test_mode.o time.o user.o util.o localprxy.o \
	banlist.o
	$(CC) $(CFLAGS) -o p_server277 \
	arnalst.o checkcrc.o city.o command.o commandos.o config.o countresets.o cv.o dron.o \
	fau.o files.o fly.o ground.o ground_util.o gunnery.o gun_gunnery.o \
	gun_rgunnery.o gun_util.o hmack.o login.o medal.o network.o plane.o \
	plane_util.o p_server.o radio.o score.o score_util.o squad.o stat.o \
	strategy.o test_alt.o test_mode.o time.o user.o util.o localprxy.o \
	banlist.o $(LIBS)

checkcrc.o: checkcrc.c server.h checkcrc.h
	${CC} ${CFLAGS} -c checkcrc.c -o checkcrc.o

city.o: city.c server.h
	${CC} ${CFLAGS} -c city.c -o city.o

command.o: command.c server.h command.h cv.h banlist.h
	${CC} ${CFLAGS} -c command.c -o command.o

commandos.o: commandos.c server.h
	${CC} ${CFLAGS} -c commandos.c -o commandos.o

config.o: config.c server.h banlist.h
	${CC} ${CFLAGS} -c config.c -o config.o

arnalst.o: arnalst.c server.h
	${CC} ${CFLAGS} -c arnalst.c -o arnalst.o

cv.o: cv.c server.h cv.h
	${CC} ${CFLAGS} -c cv.c -o cv.o

countresets.o: countresets.c server.h countresets.h
	${CC} ${CFLAGS} -c countresets.c -o countresets.o

dron.o: dron.c server.h gunnery.h
	${CC} ${CFLAGS} -c dron.c -o dron.o

fau.o: fau.c server.h gunnery.h
	${CC} ${CFLAGS} -c fau.c -o fau.o

files.o: files.c server.h
	${CC} ${CFLAGS} -c files.c -o files.o

fly.o: fly.c server.h
	${CC} ${CFLAGS} -c fly.c -o fly.o

ground.o: ground.c server.h cv.h
	${CC} ${CFLAGS} -c ground.c -o ground.o

ground_util.o: ground_util.c server.h cv.h
	${CC} ${CFLAGS} -c ground_util.c -o ground_util.o

gunnery.o: gunnery.c server.h gunnery.h cv.h
	${CC} ${CFLAGS} -c gunnery.c -o gunnery.o

gun_gunnery.o: gun_gunnery.c server.h gunnery.h
	${CC} ${CFLAGS} -c gun_gunnery.c -o gun_gunnery.o

gun_rgunnery.o: gun_rgunnery.c server.h gunnery.h
	${CC} ${CFLAGS} -c gun_rgunnery.c -o gun_rgunnery.o

gun_util.o: gun_util.c server.h gunnery.h
	${CC} ${CFLAGS} -c gun_util.c -o gun_util.o

hmack.o: hmack.c server.h
	${CC} ${CFLAGS} -c hmack.c -o hmack.o

login.o: login.c server.h
	${CC} ${CFLAGS} -c login.c -o login.o

medal.o: medal.c server.h
	${CC} ${CFLAGS} -c medal.c -o medal.o

network.o: network.c server.h
	${CC} ${CFLAGS} -c network.c -o network.o

plane.o: plane.c server.h
	${CC} ${CFLAGS} -c plane.c -o plane.o

plane_util.o: plane_util.c server.h
	${CC} ${CFLAGS} -c plane_util.c -o plane_util.o

radio.o: radio.c server.h banlist.h
	${CC} ${CFLAGS} -c radio.c -o radio.o

squad.o: squad.c server.h
	${CC} ${CFLAGS} -c squad.c -o squad.o

score.o: score.c server.h
	${CC} ${CFLAGS} -c score.c -o score.o

score_util.o: score_util.c server.h
	${CC} ${CFLAGS} -c score_util.c -o score_util.o

stat.o: stat.c server.h
	${CC} ${CFLAGS} -c stat.c -o stat.o

strategy.o: strategy.c server.h
	${CC} ${CFLAGS} -c strategy.c -o strategy.o

p_server.o: p_server.c server.h
	${CC} ${CFLAGS} -c p_server.c -o p_server.o

test_alt.o: test_alt.c server.h radar.h
	${CC} ${CFLAGS} -c test_alt.c -o test_alt.o

test_mode.o: test_mode.c server.h radar.h gunnery.h cv.h
	${CC} ${CFLAGS} -c test_mode.c -o test_mode.o

time.o: time.c server.h
	${CC} ${CFLAGS} -c time.c -o time.o

user.o: user.c server.h cv.h banlist.h
	${CC} ${CFLAGS} -c user.c -o user.o

util.o: util.c server.h cv.h id.h
	$(CC) $(CFLAGS) -c util.c -o util.o

localprxy.o: localprxy.c server.h cv.h id.h
	$(CC) $(CFLAGS) -c localprxy.c -o localprxy.o

banlist.o: banlist.c banlist.h server.h cv.h id.h
	$(CC) $(CFLAGS) -c banlist.c -o banlist.o


clean:
	-@rm -f p_server c_server *.exe *.log *.tgz *.o *.b *~ 2>/dev/null
	-@rm -R tmp 2>/dev/null

tar:
	tar cvfz wbserver.tgz arnalst.c util.c hmack.c p_server.c \
	network.c banlist.c commandos.c checkcrc.c checkcrc.h city.c \
	command.c countresets.c countresets.h fau.c files.c fly.c gunnery.c gun_gunnery.c \
	gun_rgunnery.c dron.c gun_util.c user.c ground.c ground_util.c \
	radio.c config.c localprxy.c login.c medal.c squad.c stat.c strategy.c cv.c cv.h \
	server.h plane.c plane_util.c time.c test_alt.c test_mode.c score.c \
	score_util.c radar.h banlist.h banlist.c \
	command.h gunnery.h *.sample Makefile users/0001 users/*.sample \
	logs/*.sample setting/wbmed276/*.sample squads/*.sample \
	docs/server.txt docs/packets.txt docs/protocol.txt docs/commands.txt \
	changes install stat/*.sample

win32_distr: p_server
	strip p_server.exe
	tar cvzf wbdistr.tgz logs/*.sample setting/*.sample \
	users/0001 users/*.sample \
	*.sample p_server.exe install todo changes \
	Makefile cygwin1.dll

2unix:
	-@mkdir tmp 2>/dev/null
	@cp *.[c,h,txt] tmp/ 
	@(cd tmp ; for i in *.[c,h,txt] ;do tr -d '\r' < $$i > ../$$i; done )
	@echo 'Backup of DOS files in tmp'


