#----------------------------------------------------------------------------
#       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
LDFLAGS  += -L$(ACE_ROOT)/lib
TAOIDL = $(ACE_ROOT)/TAO/TAO_IDL/tao_idl
SERVER_SVC_LIBS = -lTAO_IORTable
CLIENT_SVC_LIBS =      # wir brauchen hier keine
IDLFLAGS =

all: halloserver halloclient

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

$(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 $(SERVER_SVC_LIBS) $(TAO_SRVR_LIBS)

halloclient: client.cpp halloC.o
	$(CC) -o $@  $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) client.cpp halloC.o \
 $(CLIENT_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

