# for GCC
FFLAGS	= -O3 -m64 -fopenmp -fno-second-underscore # RBF kernel
#FFLAGS	= -O3 -m64 -fopenmp -fno-second-underscore -DLinear # linear kernel
CFLAGS	= -O3 -m64
LFLAGS	= -L/opt/acml4.4.0/gfortran64_mp/lib -lacml_mp # using ACML
FC	= gfortran
CC	= gcc

# for Open64 compiler
#FFLAGS	= -Ofast -mp -fno-second-underscore # RBF kernel
#FFLAGS	= -Ofast -mp -fno-second-underscore -DLinear # linear kernel
#CFLAGS	= -Ofast
#LFLAGS	= -L/opt/amdsdk/v1.0/acml/open64_64_mp/lib -lacml_mp -lacml_mv # using ACML
#FC	= openf95
#CC	= opencc

# 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 *~

