1IFLAGS =  -Iincludes/
2ARCH =  -arch=sm_35
3#ARCH = -arch=sm_35
4#NVFLAGS = -O3 -std=c++11  -DNOHTIME -arch=sm_35
5#NVFLAGS = -O3 -std=c++11 $(IFLAGS)  $(CFLAGS) -DNOHTIME -Xptxas --warn-on-spills -Xptxas -dlcm=ca  $(ARCH)
6NVFLAGS = -O3 -Xcompiler -fPIC -std=c++11 $(IFLAGS)  $(CFLAGS) -DNOHTIME -Xptxas --warn-on-spills   $(ARCH)
7#NVFLAGS = -O3 -std=c++11  -DNOHTIME  -Xptxas --warn-on-spills -Xptxas -dlcm=cg
8#NVFLAGS = -O3 -std=c++11  -DNOHTIME  -Xptxas --warn-on-spills -Xptxas -dlcm=ca -arch=sm_35
9#NVFLAGS = -O3 -std=c++11  -DNOHTIME  -Xptxas --warn-on-spills -Xptxas -flcm=ca -arch=sm_35
10
11HEADERS = kernels/fvigeneralolap.h
12SCR1 =  fvimatchl32.cu fvimatchg32_blocking.cu \
13	fvimatchg32.cu      fvinomatchgeneral.cu fvigeneralolap.cu
14#SCR1 =  matrixtranspose.cu fvimatchl32.cu fvimatchg32l120.cu        fvinomatchalldiff.cu  fvinomatchonerepeat.cu  fvinomatchsisame.cu \
15	fvimatchg32.cu  fvimatchl32_factor.cu  fvinomatchg32.cu      fvinomatchrepdiff.cu fvigeneral.cu fvigeneralolap.cu
16
17SCR2 = test.cpp BlockingCase.cpp  main.cpp  Parameters.cpp  ParameterTuner.cpp  TransposeSpec.cpp model.c
18OBJS = $(SCR1:.cu=.o) $(SCR2:.cpp=.o)
19
20MAIN = ttlg
21MAIN_L = libttlg.so
22
23LIBS = -lgomp -lm
24all: $(MAIN)
25lib: $(MAIN_L)
26exe: $(MAIN)
27$(MAIN_L) : $(OBJS)
28	nvcc -shared $(NVFLAGS) $^ -o $(MAIN_L) $(LIBS)
29$(MAIN) : $(OBJS)
30	nvcc $(NVFLAGS) $^ -o $(MAIN) $(LIBS)
31
32%.o : %.cpp
33	nvcc $(NVFLAGS) -c $< -o $@
34
35%.o : %.cu
36	nvcc $(NVFLAGS) -c $< -o $@
37fvigeneralolap.cu : kernels/fvigeneralolap.h
38
39
40clean:
41	rm -f *.o $(MAIN) $(MAIN_L)
42
43