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)

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

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

SVMHMM   = $(BIN_PATH)/svmhmm

OBJH     = \
	   $(OBJ_PATH)/svmhmm.o

SVMREGRESS = $(BIN_PATH)/svmregression

OBJR       = \
	   $(OBJ_PATH)/svmregression.o

SVMGRAD  = $(BIN_PATH)/svmgrad

OBJG     = \
	   $(OBJ_PATH)/svmgrad.o

SVMTRANS = $(BIN_PATH)/svmtrans

OBJT     = \
	   $(OBJ_PATH)/svmtrans.o

SVMTRAIN = $(BIN_PATH)/svmparallel

OBJ      = \
	   $(OBJ_PATH)/svmparallel.o


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

TARGETS  = $(SVMTRAIN) $(SVMREGRESS) $(SVMHMM) $(SVMGRAD) $(SVMTRANS)

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

default all: ${TARGETS}

$(SVMTRAIN): $(OBJ)
	$(C++) $(C++FLAGS) -o $(SVMTRAIN) $(OBJ) $(LIB_COMM) $(LIB)

$(SVMREGRESS): $(OBJR)
	$(C++) $(C++FLAGS) -o $(SVMREGRESS) $(OBJR) $(LIB_COMM) $(LIB)

$(SVMHMM): $(OBJH)
	$(C++) $(C++FLAGS) -o $(SVMHMM) $(OBJH) $(LIB_COMM) $(LIB)

$(SVMGRAD): $(OBJG)
	$(C++) $(C++FLAGS) -o $(SVMGRAD) $(OBJG) $(LIB_COMM) $(LIB)

$(SVMTRANS): $(OBJT)
	$(C++) $(C++FLAGS) -o $(SVMTRANS) $(OBJT) $(LIB_COMM) $(LIB)


clean:  
	rm -f $(OBJ)
	rm -f *~
	rm -f core
