#----------------------------------------------------------------------------
#       Include macros and targets
#----------------------------------------------------------------------------
include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
include $(ACE_ROOT)/TAO/rules.tao.GNU
include $(ACE_ROOT)/TAO/taoconfig.mk

CPPFLAGS += -I$(ACE_ROOT)/TAO/orbsvcs
TAOIDL = $(ACE_ROOT)/TAO/TAO_IDL/tao_idl
SVC_LIBS = -lTAO_CosNaming
IDLFLAGS =

all: halloserver halloclient

echo:
	@echo TAO_CLNT_LIBS=$(TAO_CLNT_LIBS) TAO_SRVS_LIBS=$(TAO_SRVR_LIBS)

GEN=	halloC.cpp\
	halloC.h\
	halloC.i\
	halloS.cpp\
	halloS.h\
	halloS.i\
	halloS_T.cpp\
	halloS_T.h\
	halloS_T.i

$(GEN): hallo.idl
	$(TAOIDL) -in $(IDLFLAGS) hallo.idl

halloserver: server.cpp halloC.o halloS.o halloI.o
	$(CC) -o $@  $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) server.cpp halloC.o halloS.o halloI.o $(SVC_LIBS) $(TAO_SRVR_LIBS)

halloclient: client.cpp halloC.o
	$(CC) -o $@  $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) client.cpp halloC.o \
 $(SVC_LIBS) $(TAO_CLNT_LIBS) 

halloC.o: halloC.cpp halloC.h
halloI.o: halloI.cpp halloI.h halloS.h halloC.h
halloS.o: halloS.cpp halloS.h halloC.h \
	 halloS_T.i halloS_T.cpp halloS.i
halloS_T.o: halloS_T.cpp halloS_T.h halloS_T.i

clean:
	rm -f *.o *~

clobber: clean
	rm -f halloclient halloserver
	rm -f $(GEN)	

newimpl: hallo.idl
	if [ -r halloI.h ]; then \
	   mv halloI.h halloI.h.alt ; \
	   mv halloI.cpp halloI.cpp.alt ; \
	fi
	$(TAOIDL) -in -GI $(IDLFLAGS) hallo.idl
	-if [ -r halloI.h.alt ]; then \
	   mv halloI.h halloI.h.neu ; \
	   mv halloI.cpp halloI.cpp.neu ; \
	   diff -w --ifdef NEU  halloI.h.alt halloI.h.neu > halloI.h ; \
	   diff -w --ifdef NEU  halloI.cpp.alt halloI.cpp.neu > halloI.cpp ; \
	fi

