ARCH           = OS
SHOBJ          = YES

include ../include/makeinclude/Makefile.$(ARCH)

APPNAME        = "CDEV Generic Server Engine"
CXXINCLUDES    = -I../include/ace $(ACEINCLUDES)
TEMPLINKS      = cdevPacket.cc\
                 cdevMessageBinary.cc\
		 cdevMessage.cc\
		 cdevContextMap.cc\
		 cdevTagMap.cc\
		 cdevMonitorTable.cc\
		 SignalManager.cc\
		 cdevAddr.cc\
		 cdevEventHandler.cc\
		 cdevHandleSet.cc\
		 cdevReactor.cc\
		 cdevSocket.cc\
		 cdevSocketAcceptor.cc\
		 cdevSocketConnector.cc\
		 cdevSocketDatagram.cc\
		 cdevSocketStream.cc\
		 cdevStreamNode.cc\
		 cdevStreamQueue.cc\
		 cdevTime.cc\
		 fifo.cc\
		 IntHash.cc

SERVER_OBJS    = $(OBJDIR)/cdevServer.o\
                 $(OBJDIR)/cdevServerTools.o\
		 $(OBJDIR)/cdevSessionManager.o\
		 $(OBJDIR)/ClientHandler.o\
		 $(OBJDIR)/ClientAcceptor.o\
		 $(OBJDIR)/cdevTagMap.o\
		 $(OBJDIR)/cdevMonitorTable.o

COMMON_OBJS    = $(OBJDIR)/cdevPacket.o\
                 $(OBJDIR)/cdevMessageBinary.o\
		 $(OBJDIR)/cdevMessage.o\
		 $(OBJDIR)/cdevContextMap.o\
		 $(OBJDIR)/SignalManager.o\
		 $(OBJDIR)/fifo.o\
		 $(OBJDIR)/IntHash.o

ACE_OBJS       = $(OBJDIR)/cdevAddr.o\
                 $(OBJDIR)/cdevEventHandler.o\
                 $(OBJDIR)/cdevHandleSet.o\
		 $(OBJDIR)/cdevReactor.o\
		 $(OBJDIR)/cdevSocket.o\
		 $(OBJDIR)/cdevSocketAcceptor.o\
		 $(OBJDIR)/cdevSocketConnector.o\
		 $(OBJDIR)/cdevSocketDatagram.o\
		 $(OBJDIR)/cdevSocketStream.o\
		 $(OBJDIR)/cdevStreamNode.o\
		 $(OBJDIR)/cdevStreamQueue.o\
		 $(OBJDIR)/cdevTime.o
		 
# ******************************************************************************
# * The BINARIES definition names all of the binary files that should be deleted
# * whenever "make clean" is executed.
# ******************************************************************************
BINARIES    = $(BASELIB)/libcdevServer.$(SHARED_EXT) \
              $(BASELIB)/libcdevServer.a
	
ifeq ($(SHOBJ),YES)
	TARGETS = $(TEMPLINKS) $(BASELIB)/libcdevServer.$(SHARED_EXT)
else
	TARGETS = $(TEMPLINKS) $(BASELIB)/libcdevServer.a
endif
	       
targets : $(TARGETS)

$(TEMPLINKS) : 
	@cp $^ $@
		
$(BASELIB)/libcdevServer.a : $(SERVER_OBJS) $(COMMON_OBJS) $(ACE_OBJS)
	$(LINK.a) $@ $^
	@$(RANLIB) $@ > /dev/null
	@cp $@ $(CDEVLIB)	

$(BASELIB)/libcdevServer.$(SHARED_EXT) : $(SERVER_OBJS) $(COMMON_OBJS) $(ACE_OBJS)
	$(LINK.so) -o $@ $^ $(NETLIBS)
	@cp $@ $(CDEVLIB)
	
cdevPacket.cc		: ../cdevPacket/cdevPacket.cc
cdevMessageBinary.cc	: ../cdevPacket/cdevMessageBinary.cc
cdevMessage.cc		: ../cdevPacket/cdevMessage.cc
cdevContextMap.cc	: ../cdevContextMap/cdevContextMap.cc
cdevTagMap.cc		: ../cdevTagMap/cdevTagMap.cc
cdevMonitorTable.cc	: ../cdevMonitorTable/cdevMonitorTable.cc
SignalManager.cc	: ../common/SignalManager.cc
cdevAddr.cc		: ../cdevReactor/cdevAddr.cc
cdevEventHandler.cc	: ../cdevReactor/cdevEventHandler.cc
cdevHandleSet.cc	: ../cdevReactor/cdevHandleSet.cc
cdevReactor.cc		: ../cdevReactor/cdevReactor.cc
cdevSocket.cc		: ../cdevReactor/cdevSocket.cc
cdevSocketAcceptor.cc	: ../cdevReactor/cdevSocketAcceptor.cc
cdevSocketConnector.cc	: ../cdevReactor/cdevSocketConnector.cc
cdevSocketDatagram.cc	: ../cdevReactor/cdevSocketDatagram.cc
cdevSocketStream.cc	: ../cdevReactor/cdevSocketStream.cc
cdevStreamNode.cc	: ../cdevReactor/cdevStreamNode.cc
cdevStreamQueue.cc	: ../cdevReactor/cdevStreamQueue.cc
cdevTime.cc		: ../cdevReactor/cdevTime.cc
fifo.cc			: ../common/fifo.cc
IntHash.cc		: ../common/IntHash.cc
