include ../Makefile.generic

TBINDIR = ./build/bin
TOBJDIR = ./build/obj
TLIBDIR = ./build/lib
.SUFFIXES: .so .cpp .o $(LSFX)

TARGET   = ClassifiedPointsConverter
CXXFLAGS += -I../idl/
LIBIDL = ../idl/libExtended3DdataTypes.a
SRC = $(TARGET).cpp
OBJFILES = $(SRC:.cpp=.o)
OBJS     = $(addprefix $(TOBJDIR)/, $(OBJFILES))
TARGETLIB = $(TLIBDIR)/$(TARGET).$(LSFX)
TARGETCOMP = $(TBINDIR)/$(TARGET)Comp
CXXFLAGS += -I$(MODULES_DIR) -I$(FUNCS_DIR)
LDFLAGS += -lboost_thread
LDFLAGS += -L/usr/lib/octave-`octave-config -v` -loctave -Wl,-rpath /usr/lib/octave-`octave-config -v`
LIBS = $(LIBDIR)/liboctave_rtmex.a

all: mkdir $(TARGETLIB) $(TBINDIR)/$(TARGET)Comp $(TBINDIR)/ClassifiedPointsConverterTest.conf $(TBINDIR)/rtc.conf

.cpp.o:
	rm -f $@
	$(CXX) $(CXXFLAGS) -c -o $@ $<

mkdir:
	@if [ ! -d $(TBINDIR) ]; then \
	echo "Make build directory";\
	mkdir -p $(TBINDIR);\
	mkdir -p $(TOBJDIR);\
	mkdir -p $(TLIBDIR);\
	fi

$(TARGETLIB): $(OBJS)
	rm -f $@
	$(CXX) $(SHFLAGS) -o $@ $(OBJS) $(LIBS) $(LIBIDL) $(LDFLAGS)

$(TARGETCOMP): $(TOBJDIR)/$(TARGET)Comp.o $(OBJS)
	$(CXX) -o $@ $(TOBJDIR)/$(TARGET)Comp.o $(OBJS) $(LIBS) $(LIBIDL) $(LDFLAGS) 

$(TBINDIR)/ClassifiedPointsConverterTest.conf: ClassifiedPointsConverterTest.conf
	cp -f ClassifiedPointsConverterTest.conf $(TBINDIR)/

dist-clean: clean
	rm -rf ./build/ 

clean: clean_objs
	rm -f *~ \#* *.log

clean_objs:
	rm -f $(OBJS) $(TOBJDIR)/$(TARGET)Comp.o $(TARGETLIB) $(TARGETCOMP)


$(TOBJDIR)/$(TARGET).o: $(TARGET).cpp $(TARGET).h
	rm -f $@
	$(CXX) $(CXXFLAGS) -c -o $@ $<

$(TOBJDIR)/$(TARGET)Comp.o: $(TARGET)Comp.cpp 
	rm -f $@
	$(CXX) $(CXXFLAGS) -c -o $@ $<

$(TBINDIR)/rtc.conf: ../rtc.conf
	cp -f ../rtc.conf $(TBINDIR)/

# end of Makefile
