# Makefile for spmtv cuda # Jan Mandel, September 2003 .SUFFIXES: .SUFFIXES: .f90 .cu .o .c .f90.o: $(FC) -c $(OPT) $*.f90 .cu.o: nvcc -c $(OPT) $(CUDAOPT) $*.cu OPT=-O3 CUDAOPT=--ptxas-options=-v #OPT=-g #CUDAOPT=-deviceemu # Define Fortran compiler #FC= ifort #FC=gfortran FC= g95 # supplied in environment #CCLIBFLAGS=-lsupc++ # needed on OSX #CUDA=/usr/local/cuda go: laplace.exe ./laplace.exe # all objects OBJ=mod_main.o Cuda_function.o mod_util.o mod_laplace.o cuda_util.o # module and include dependencies mod_main.o: mod_util.o mod_laplace.o mod_laplace.o: mod_util.o Cuda_function.o: cuda_util.h cuda_util.o: cuda_util.h laplace.exe: $(OBJ) $(FC) $(OPT) -o laplace.exe $(OBJ) -L$(CUDA)/lib -lcudart $(CCLIBFLAGS) clean: rm *.exe *.o *.mod PROJ=laplace SRC= Cuda_function.cu Makefile mod_main.f90 mod_laplace.f90 mod_util.f90 cuda_util.cu tgz: $(PROJ).tgz $(PROJ).tgz: $(SRC) rm -rf $(PROJ) mkdir $(PROJ) cp -p $(SRC) $(PROJ) tar cvfz $(PROJ).tgz $(PROJ)