#
# Makefile for Mico Services
# See https://www.eyt.ca/CORBA/
#
#	This requires the MICO_HOME environment label set to the
#	root directory of the Mico Distribution, and requires
#	mico_cpp to be in your path.
#
#	See ../../README for details.
#
MICO_DIR = $(MICO_HOME)
MICO_IDL = $(MICO_DIR)/idl
MICO_INCLUDE = $(MICO_DIR)/include
MICO_LIB = $(MICO_DIR)/libs
MICO_LIBRARIES = \
	$(MICO_LIB)/libmico2.3.11.a \
	$(MICO_LIB)/libmicoaux2.3.11.a \
	$(MICO_LIB)/libmicocoss2.3.11.a \
	$(MICO_LIB)/libmicoir2.3.11.a

all: TimeClientMico TimeServerMico TimeClient2Mico TimeServer2Mico TimeClient3Mico TimeServer3Mico

TimeClientMico: Time.o TimeClient.o $(MICO_LIBRARIES)
	g++ -g -o TimeClientMico TimeClient.o Time.o $(MICO_LIBRARIES) -ldl

TimeClient2Mico: Time.o TimeClient2.o $(MICO_LIBRARIES)
	g++ -g -o TimeClient2Mico TimeClient2.o Time.o $(MICO_LIBRARIES) -ldl

TimeClient3Mico: Time.o MulticastSocket.o TimeClient3.o $(MICO_LIBRARIES)
	g++ -g -o TimeClient3Mico MulticastSocket.o TimeClient3.o Time.o $(MICO_LIBRARIES) -ldl

TimeServerMico: Time.o TimeServer.o $(MICO_LIBRARIES)
	g++ -g -o TimeServerMico TimeServer.o Time.o $(MICO_LIBRARIES) -ldl

TimeServer2Mico: Time.o TimeServer2.o $(MICO_LIBRARIES)
	g++ -g -o TimeServer2Mico TimeServer2.o Time.o $(MICO_LIBRARIES) -ldl

TimeServer3Mico: Time.o MulticastSocket.o TimeServer3.o $(MICO_LIBRARIES)
	g++ -g -o TimeServer3Mico MulticastSocket.o TimeServer3.o Time.o $(MICO_LIBRARIES) -ldl -lpthread

Time.cpp: ../../Time.idl
	# Requires mico_cpp in your path, which is in $(MICO_IDL)/cpp
	$(MICO_IDL)/idl --c++-suffix cpp --poa ../../Time.idl

Time.o: Time.cpp Time.h
	g++ -c -g -I $(MICO_INCLUDE) Time.cpp

TimeClient.o: ../TimeClient.cpp
	g++ -c -g -I$(MICO_INCLUDE) -DEYT_MICO ../TimeClient.cpp

TimeServer.o: ../TimeServer.cpp
	g++ -c -g -I$(MICO_INCLUDE) -DEYT_MICO ../TimeServer.cpp

TimeClient2.o: ../TimeClient2.cpp
	g++ -c -g -I$(MICO_INCLUDE) -DEYT_MICO ../TimeClient2.cpp

TimeServer2.o: ../TimeServer2.cpp
	g++ -c -g -I$(MICO_INCLUDE) -DEYT_MICO ../TimeServer2.cpp

TimeClient3.o: ../TimeClient3.cpp
	g++ -c -g -I$(MICO_INCLUDE) -DEYT_MICO ../TimeClient3.cpp

TimeServer3.o: ../TimeServer3.cpp
	g++ -c -g -I$(MICO_INCLUDE) -DEYT_MICO ../TimeServer3.cpp

MulticastSocket.o: ../MulticastSocket.cpp
	g++ -c -g -I$(MICO_INCLUDE) -DEYT_MICO ../MulticastSocket.cpp

clean:
	rm *.o TimeClientMico TimeClient2Mico TimeClient3Mico TimeServerMico TimeServer2Mico TimeServer3Mico Time.cpp Time.h
