
MY_GENCODE_FLAGS = $(GENCODE_SM13) $(GENCODE_SM20) $(GENCODE_SM30)
 
GENCODE_ARCH =  -gencode=arch=compute_13,code=\"sm_13,compute_13\" 

include Makefile.cuda

# Default arch includes gencode for sm_10, sm_20, and other archs from GENCODE_ARCH declared in the makefile

OBJS = MyReduction.o MyReduction_kernel.o probaGPU_kernel.o init.o

all : exo04

NVCCFLAGS += -use_fast_math
LDFLAGS       += -lcurand

# CPP -> OBJET
init.o : init.cpp init.h MyReduction.h

MyReduction.o : MyReduction.cpp MyReduction.hpp MyReduction.h

exo04.o : exo04.cpp exo04func.hpp init.h MyReduction.hpp MyReduction.h

MyReduction_kernel.o : MyReduction_kernel.cu MyReduction_kernel.cuh 
	$(NVCC) $(NVCCFLAGS) $(EXTRA_NVCCFLAGS) $(MY_GENCODE_FLAGS) $(INCLUDES) -o $@ -c $<

probaGPU_kernel.o : probaGPU_kernel.cu probaGPU_kernel.cuh probaGPU_kernel.hpp
	$(NVCC) $(NVCCFLAGS) $(EXTRA_NVCCFLAGS) $(MY_GENCODE_FLAGS) $(INCLUDES) -o $@ -c $<
	

exo04 : exo04.o $(OBJS)
	$(GCC) $(CCFLAGS) -o $@ $+ $(LDFLAGS) $(EXTRA_LDFLAGS)

doc :
	echo "Build listings.pdf..."
	@pdflatex listings.tex
	@pdflatex listings.tex
	@pdflatex listings.tex
	@makeindex listings.idx
	@pdflatex listings.tex
	@rm -f *.log *.lol *.aux *.dvi *.out *.toc

CLEAN : 
	@rm -rf exo04 *.log *.lol *.aux *.dvi *.out *.pdf *.toc *~ *.o
	
run : exo04
	./exo04 -type=float
