
CC = g++
CXX = g++

TOP_DIR = ../../..

DEFINE = -DORB_IS_RTORB
INCLUDE = -I ./ -I $(TOP_DIR)/include
LDFLAGS = -L $(TOP_DIR)/lib -lRtORB -lRtORB_cpp -lefence

CFLAGS = -Wall -g $(DEFINE) $(INCLUDE)
CXXFLAGS = $(CFLAGS)

IDL_FLAGS = --skeleton-impl -DORBIT2_IDL
IDLC = $(TOP_DIR)/idl-compiler/rtorb-idl

TEST_NAME = BorderTest
IDL_SRC = ../$(TEST_NAME).idl

ORB_HEADERS = $(TEST_NAME).h
ORB_SRCS = $(TEST_NAME)-common.c $(TEST_NAME)-skelimpl.c $(TEST_NAME)-skels.c $(TEST_NAME)-stubs.c
ORB_OBJS = $(ORB_SRCS:.c=.o)

SOBJS = Server.o $(ORB_OBJS)
CSCOBJS = CharSendClient.o $(ORB_OBJS)
SSCOBJS = ShortSendClient.o $(ORB_OBJS)
USSCOBJS = UShortSendClient.o $(ORB_OBJS)
LSCOBJS = LongSendClient.o $(ORB_OBJS)
ULSCOBJS = ULongSendClient.o $(ORB_OBJS)
FSCOBJS = FloatSendClient.o $(ORB_OBJS)
DSCOBJS = DoubleSendClient.o $(ORB_OBJS)

TARGETS = Server CharSendClient ShortSendClient UShortSendClient LongSendClient ULongSendClient FloatSendClient DoubleSendClient

.SUFFIXES : .o .cc .c

.cc.o:
	$(CXX) $(CXXFLAGS) -c -o $@ $<

.c.o:
	$(CC) $(CFLAGS) -c -o $@ $<

all:
	make CharSendClient
	make ShortSendClient
	make UShortSendClient
	make LongSendClient
	make ULongSendClient
	make FloatSendClient
	make DoubleSendClient
	make Server

Server: $(SOBJS)
	$(CXX) -o $@ $(SOBJS) $(LIBS) $(LDFLAGS)

CharSendClient: $(CSCOBJS)
	$(CXX) -o $@ $(CSCOBJS) $(LIBS) $(LDFLAGS)

ShortSendClient: $(SSCOBJS)
	$(CXX) -o $@ $(SSCOBJS) $(LIBS) $(LDFLAGS)

UShortSendClient: $(USSCOBJS)
	$(CXX) -o $@ $(USSCOBJS) $(LIBS) $(LDFLAGS)

LongSendClient: $(LSCOBJS)
	$(CXX) -o $@ $(LSCOBJS) $(LIBS) $(LDFLAGS)

ULongSendClient: $(ULSCOBJS)
	$(CXX) -o $@ $(ULSCOBJS) $(LIBS) $(LDFLAGS)

FloatSendClient: $(FSCOBJS)
	$(CXX) -o $@ $(FSCOBJS) $(LIBS) $(LDFLAGS)

DoubleSendClient: $(DSCOBJS)
	$(CXX) -o $@ $(DSCOBJS) $(LIBS) $(LDFLAGS)

orbsrcs:
	$(IDLC) $(IDL_FLAGS) $(IDL_SRC)

backup:
	for i in $(ORB_SRCS) $(ORB_HEADERS); \
	do \
		cp -f $$i $$i.bak; \
	done

link:
	@for i in $(TARGETS:=.cc); \
	do \
		if ! [ -L $$i ]; then \
			echo Creating Symbolik link $$i; \
			ln -s ../omni/$$i ./; \
		fi \
	done

clean: 
	$(RM) *.o $(TARGETS) *~

allclean: 
	$(RM) $(ORB_HEADERS) $(ORB_SRCS) *.o $(TARGETS) *~
