
include ../Makefile.include

BINDIR=../../bin

INCLUDE_FLAGS:=$(INCLUDE_FLAGS) -I..
LIB=libserver.a
EXE=illuminate visify mergePVS spliceZone

NET_LIB_OBJS=\
Server.$(OBJ_SUFFIX) \
Peer.$(OBJ_SUFFIX) \
Player_net.$(OBJ_SUFFIX)


LIB_OBJS=\
Entity.$(OBJ_SUFFIX) \
Character.$(OBJ_SUFFIX) \
Player.$(OBJ_SUFFIX) \
Item.$(OBJ_SUFFIX) \
Zone.$(OBJ_SUFFIX) \
Zone_dlight.$(OBJ_SUFFIX) \
Zone_physics.$(OBJ_SUFFIX) \
Zone_file.$(OBJ_SUFFIX) \
Zone_cmds.$(OBJ_SUFFIX) \
ZoneCmd.$(OBJ_SUFFIX) \
World.$(OBJ_SUFFIX) \
Sector.$(OBJ_SUFFIX) \
SectorSpecial.$(OBJ_SUFFIX) \
LineDef.$(OBJ_SUFFIX) \
SideDef.$(OBJ_SUFFIX) \
Lightmap.$(OBJ_SUFFIX) \
LightSource.$(OBJ_SUFFIX) \
Projectile.$(OBJ_SUFFIX) \
Sound.$(OBJ_SUFFIX) \
Sprite.$(OBJ_SUFFIX) \
ProtoEntity.$(OBJ_SUFFIX) \
ProtoItem.$(OBJ_SUFFIX) \
ProtoChar.$(OBJ_SUFFIX) \
StartPoint.$(OBJ_SUFFIX) \
Script.$(OBJ_SUFFIX) \
Camera.$(OBJ_SUFFIX)


ifdef DGNET
LIB_OBJS:=$(LIB_OBJS) $(NET_LIB_OBJS)
endif

RM=rm -f

default: $(LIB)

all: $(LIB) $(EXE)

depend: FORCE
	makedepend $(DEP_INCLUDES) -I/usr/local/include -f$(DEPFILE) *.cc -o.$(OBJ_SUFFIX)

include $(DEPFILE)

dg_server: $(LIB) dg_server.cc
	$(CXX) $(CXXFLAGS) $@.cc ../util/libutil.a  -o $@ $(LDFLAGS) ../util/libutil.a

illuminate: $(LIB) illuminate.cc Zone_light.$(OBJ_SUFFIX)
	$(CXX) $(CXXFLAGS) $(LIB) $@.cc -o $@ $(LDFLAGS) $(LIB) Zone_light.$(OBJ_SUFFIX) ../util/libutil.a

visify: $(LIB) visify.cc Zone_pvs.$(OBJ_SUFFIX)
	$(CXX) $(CXXFLAGS) $(LIB) $@.cc -o $@ $(LDFLAGS)  $(LIB) Zone_pvs.$(OBJ_SUFFIX) ../util/libutil.a 

mergePVS: $(LIB) mergePVS.cc Zone_pvs.$(OBJ_SUFFIX)
	$(CXX) $(CXXFLAGS) $(LIB) $@.cc -o $@ $(LDFLAGS)  $(LIB) Zone_pvs.$(OBJ_SUFFIX) ../util/libutil.a  

spliceZone: $(LIB) spliceZone.cc
	$(CXX) $(CXXFLAGS) $@.cc -o $@ $(LIB) ../util/libutil.a  

$(LIB): $(LIB_OBJS)
#	$(CXX) $(CXXFLAGS) $(LIB_OBJS) -o $@ $(LDFLAGS)
	ar -r $@ $(LIB_OBJS)

#Zone_light.$(OBJ_SUFFIX): Zone_light.c
#Zone_pvs.$(OBJ_SUFFIX):

clean: FORCE
	$(RM) *.$(OBJ_SUFFIX) core *~ $(LIB)

count: FORCE
	wc *.{cc,h} | sort -n

FORCE:


