ROT_PATH   = ../..
INC_PATH   = $(ROT_PATH)/include
OBJ_PATH   = $(ROT_PATH)/obj/$(MACHTYPE)
LIB_PATH   = $(ROT_PATH)/libs/$(MACHTYPE)
EXE_PATH   = $(ROT_PATH)/utils/$(MACHTYPE)
BIN_PATH   = $(ROT_PATH)/bin/$(MACHTYPE)
LPK_PATH   = /mas/vision/local/src/tpm/matrix/include/
TPM_PATH   = /mas/vision/local/src/tpm/lib/$(MACHTYPE)

LIBSFMEKF  = $(LIB_PATH)/libsfmekf.a
LIBSFMEKFB = $(LIB_PATH)/libsfmekfb.a

SFMEST     = $(BIN_PATH)/sfmest
SFMALI     = $(BIN_PATH)/sfmali

SFMOBJ     = \
	   $(OBJ_PATH)/SFMEKF.o


SFMOBJB    = \
	   $(OBJ_PATH)/SFMEKFb.o

OBJ       = \
	   $(OBJ_PATH)/SFMEKF.o \
	   $(OBJ_PATH)/SFMEKFb.o \
	   $(OBJ_PATH)/sfmest.o 


ALI       = \
	   $(OBJ_PATH)/SFMEKF.o \
	   $(OBJ_PATH)/SFMEKFb.o \
	   $(OBJ_PATH)/sfmali.o 

INC_COMM  = -I$(INC_PATH) -I$(LPK_PATH)
LIB_COMM  = -L$(LIB_PATH) -L$(TPM_PATH)

LIBSLOW   =  -lcppekf -lmatrix -ltpm -lcomplib.sgimath -lftn -lm

LIB       =  -lcppekf -lmatrix -ltpm -lcomplib.sgimath_mp -lftn -lmp -lm

ifeq ($(MACHTYPE),iris64)
FLGS      = -mips4 -O2 $(INC_COMM)
else
FLGS      = -O2 $(INC_COMM)
endif
C++       = CC
C++FLAGS  = $(FLGS)

TARGETS   = $(LIBSFMEKF) $(LIBSFMEKFB)

$(OBJ_PATH)/%.o : %.c++
	$(C++) $(C++FLAGS) -c $< -o $@

default all: ${TARGETS} ${SFMEST} $(SFMALI)

$(LIBSFMEKF): $(SFMOBJ)
	ar rcv $@ $(SFMOBJ)

$(LIBSFMEKFB): $(SFMOBJB)
	ar rcv $@ $(SFMOBJB)

$(SFMEST): $(OBJ)
	$(C++) $(C++FLAGS) -o $(SFMEST) $(OBJ) $(LIB_COMM) $(LIBSLOW)

$(SFMALI): $(ALI)
	$(C++) $(C++FLAGS) -o $(SFMALI) $(ALI) $(LIB_COMM) $(LIBSLOW)

clean:  
	rm -f $(LIBSFMEKF) $(LIBSFMEKFB) $(OBJ) $(SFMEST) $(SFMALI)
	rm -f *~
	rm -f core


