# toto plati pro intel fortran
FC90=ifort
LAPACK=-L/opt/intel/Compiler/11.0/081/mkl/lib/em64t \
       -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lguide -lpthread

# toto plati pro gfortran
#FC90=gfortran
#LAPACK=-L/usr/lib64 -llapack -lblas

NVCC=nvcc


INCLUDES=-I${CULA_INC_PATH}
LIBPATH32=-L${CULA_LIB_PATH_32}
LIBPATH64=-L${CULA_LIB_PATH_64}
LIBS=-lcula -lcula_fortran -lcublas -lcudart
CUTIL=-I/usr/local/NVIDIA_GPU_Computing_SDK/C/common/inc
LIBFFT=-L/usr/local/cuda/lib64/ -lcufft -lcudart

all		:	svd solve dalmatske_cuffty

svd		:	cula_check.o svd.o
			$(FC90) -o svd svd.o cula_check.o \
			$(INCLUDES) $(LIBPATH64) $(LIBS) $(LAPACK)

solve		:	cula_check.o solve.o
			$(FC90) -o solve solve.o cula_check.o \
			$(INCLUDES) $(LIBPATH64) $(LIBS) $(LAPACK)

dalmatske_cuffty	:	cuda_alloc.o fft1d.o dalmatske_cuffty.o four1.o
			$(FC90) -o dalmatske_cuffty dalmatske_cuffty.o cuda_alloc.o fft1d.o four1.o \
			$(CFLAGS) $(LIBFFT)

svd.o		:	cula_check.o svd.f90
			$(FC90) -c svd.f90

solve.o		:	cula_check.o solve.f90
			$(FC90) -c solve.f90

dalmatske_cuffty.o	:	dalmatske_cuffty.f90
			$(FC90) -c dalmatske_cuffty.f90

cula_check.o	:	cula_check.f90
			$(FC90) -c cula_check.f90

cuda_alloc.o	:	cuda_alloc.f90
			$(FC90) -c cuda_alloc.f90

four1.o		:	four1.f
			$(FC90) -c four1.f

fft1d.o		:	fft1d.cu
			$(NVCC) $(CUTIL) -c fft1d.cu

clean		:
			rm -f *.o svd solve dalmatske_cuffty
