# 1) wherever you have CUDA
CUDADIR = /usr/local/cuda
# 2) wherever you have Matlab
MATLAB = /opt/matlab
# 3) wherever you have the Jacket engine
JKT = ../../../
# 4) uncomment if 64-bit
# OS = 64

MEXT = $(shell $(MATLAB)/bin/mexext)
MINC = -I$(MATLAB)/extern/include
CUDAINC = -I$(CUDADIR)/include
CUDALIB = -L$(CUDADIR)/lib$(OS) -lcudart -Wl,-rpath,$(CUDADIR)/lib$(OS)
JKTLIB = -L$(JKT)/engine/ -ljacket$(OS)
JKTINC = -I$(JKT)/engine/include/
NVMEX = $(JKT)/sdk/common/nvmex -f $(JKT)/sdk/common/nvopts.sh

all: $(patsubst %, medfilt2_%.$(MEXT), cpu cpu_exch gmem gmem_exch gmem_r9 tex smem stex exch gfor hello err)

%.$(MEXT) : %.o
	env MATLAB=$(MATLAB) $(NVMEX) $^ $(JKTLIB) $(JKTINC) $(CUDAINC) $(CUDALIB) -cxx -largeArrayDims

%_r9.o : %.cu
	nvcc -o $@ -c $< $(JKTINC) $(CUDAINC) $(MINC) --ptxas-options=-v --maxrregcount=9

%.o : %.cu
	nvcc -o $@ -c $< $(JKTINC) $(CUDAINC) $(MINC) --ptxas-options=-v

clean :
	rm -f medfilt2_*.mex* *.o

