CUDA_INSTALL_PATH = /usr/local/cuda_2.3
CUDA_SDK_PATH     = /usr/local/cuda_2.3/NVIDIA_GPU_Computing_SDK/C
CUDA_LIB          = -L$(CUDA_INSTALL_PATH)/lib64 -lcudart

F77 = gfortran
CC = gcc 
CFLAGS = -DVTGRAPE 
CFLAGS += -O -ffast-math -funroll-loops 
CFLAGS += -fopenmp
#CFLAGS += -g

NVCC       = $(CUDA_INSTALL_PATH)/bin/nvcc
NVCC_FLAGS = --compile
NVCC_FLAGS += -use_fast_math
NVCC_FLAGS += -O
NVCC_FLAGS += --ptxas-options -v
#NVCC_FLAGS += -deviceemu
#NVCC_FLAGS += --maxrregcount 16
#NVCC_FLAGS += -g
#NVCC_FLAGS += -arch sm_13
CUDAINCLUDES  = -I. -I$(CUDA_INSTALL_PATH)/include -I$(CUDA_SDK_PATH)/common/inc
#CUDA_LIB += -lcuda
#CUDA_LIB += $(CUDA_SDK_PATH)/lib/libcutil.a 

G80LIB = libmd3withg80src3.a 
TARGET = check sample_md3

all: $(TARGET)

libmd3withg80src3.a : mr3.o mr3_fortran.o mr3_host.o
	ar ruv $@ $?
	ranlib $@

check : check.c mr3.h $(G80LIB) 
	$(CC) -o $@ check.c $(CFLAGS) $(G80LIB) $(CUDA_LIB)

sample_md3 : sample_md3.f $(G80LIB)
	$(F77) $(FFLAGS) -o $@ $< $(G80LIB) $(CUDA_LIB)

mr3.o : mr3.cu mr3_core.c mr3_core.h
	$(NVCC) $(NVCC_FLAGS) $(CUDAINCLUDES) $< -o $@

mr3.h : mr3_core.h mr3.cu mr3_core.c mr3_host.c mr3_fortran.c
	cat mr3_core.h > mr3.h
	cproto mr3_core.c >> mr3.h
	cproto mr3_host.c >> mr3.h
	cproto mr3_fortran.c >> mr3.h

clean:
	-rm *.o *~ $(TARGET) sample_mdone.prnt

dist:
	tar cvfz md3withg80src3.tar.gz Makefile *.c *.h *.cu *.f

