include ../Makefile.generic

TARGET   = NxMotionEstimator
TBINDIR = ./build/bin
TOBJDIR = ./build/obj
TLIBDIR = ./build/lib

CXXFLAGS += -I../idl/
LIBIDL = ../idl/libExtended3DdataTypes.a
SRC = $(TARGET).cpp TransEstimatorCore.cpp MotionEstimatorCore.cpp TrueValueEstimatorCore.cpp RotEstimatorCore.cpp
OBJFILES = $(SRC:.cpp=.o)
OBJS     = $(addprefix $(TOBJDIR)/, $(OBJFILES))
TARGETLIB = $(TLIBDIR)/$(TARGET).$(LSFX)
TARGETCOMP = $(TBINDIR)/$(TARGET)Comp

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 $(LIBDIR)/libbwf.a

all: mkdir $(TARGETLIB) $(TBINDIR)/$(TARGET)Comp $(TBINDIR)/NxMotionEstimatorTest.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) $(LDFLAGS) $(LIBIDL)

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

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

clean: clean_objs
	rm -f *~ *.log

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

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


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

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

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

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

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

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

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

# end of Makefile
