# directories
DIRSRC=src/
DIRINC=include/
DIRLIB=lib/

INCDIR=-I/usr/local/cuda-6.0/include

# compilers and flags
CC=g++
CCFLAGS=-fPIC -g -std=c++11

NVCC=nvcc
NVCCFLAGS=-Xcompiler -fPIC -DCUCC_ID="nVidia" -DBLD_PROCEDURE -DWITH_GSL -DHAVE_INLINE -DWITH_CUDA -DWITH_MPI -DPARALLEL -DWITH_PARALLEL_IO  $(CUDA_ARCH) -g -G -arch=sm_30

CUDA_LIBNAME=cudaOverlap

CUDA_LIB=$(DIRLIB)lib$(CUDA_LIBNAME).a

CUDA_OBJS=cudaKernel_overlap wrapperCudaKernel
CUDA_SOURCES=$(addsuffix .cu,$(addprefix $(DIRSRC),$(CUDA_OBJS)))
CUDA_HEADERS=$(addsuffix .h,$(addprefix $(DIRINC),$(CUDA_OBJS)))
CUDA_OBJECTS=$(addsuffix .o,$(addprefix $(DIRLIB),$(CUDA_OBJS)))

# dependencies
all: $(CUDA_LIB)

$(CUDA_LIB): $(CUDA_OBJECTS)
	ar rv $@ $^

$(CUDA_OBJECTS): $(DIRLIB)%.o: $(DIRSRC)%.cu $(DIRINC)%.h
	$(NVCC) -c $< -o $@ $(NVCCFLAGS) -I$(DIRINC)


.PHONY: clean
clean:
	rm -rf $(CUDA_OBJECTS) $(CUDA_LIB)
