# for GCC
FFLAGS	= -g -O3 -m64 -msse -msse2 -msse3 -fopenmp # RBF kernel
#FFLAGS	= -O3 -m64 -msse -msse2 -msse3 -fopenmp -DLinear # linear kernel
#LFLAGS	= -L/usr/local/lib -llapack -lf77blas -lcblas -latlas # single thread version
CFLAGS	= -g -O3
LFLAGS	= -L/usr/local/lib -lpthread -llapack -lptf77blas -lptcblas -latlas # muti thread version
FC	= gfortran
CC	= gcc

# for intel compiler
#FFLAGS  = -fast -i8 -openmp
#LFLAGS  = -L/opt/intel/mkl/10.0.1.014/lib/em64t -lmkl_intel_thread -lmkl_lapack -static
#FC      = ifort
#CC	= icc

OBJS	= mod_declare.o Newton.o solve_QP.o calc_b_KKT.o hsort.o initial_a.o initial_working_set.o \
	mk_index.o mk_subQP.o select_wset.o update.o calc_sigmoid.o init_PN.o mk_Kmat.o Kernel.o \
	parse_option.o

BINS	= SVMlearn SVMpred


all	:	$(BINS)

.SUFFIXES :
.SUFFIXES :     .o .F

.F.o :		
		$(FC) $(FFLAGS) -c $<

IO.o :		IO.c
		$(CC) $(CFLAGS) -c IO.c

SVMlearn:	SVMlearn.F $(OBJS) IO.o
		$(FC) $(FFLAGS) -o SVMlearn SVMlearn.F $(OBJS) IO.o $(LFLAGS)

SVMpred	:	SVMpred.F $(OBJS) IO.o
		$(FC) $(FFLAGS) -o SVMpred SVMpred.F $(OBJS) IO.o $(LFLAGS)

clean :
		rm -f *.o *.mod *~ $(BINS)

nyoro :
		rm -f *~

