
MY_GENCODE_FLAGS = $(GENCODE_SM13) $(GENCODE_SM20) $(GENCODE_SM30)

EXTRA_NVCCFLAGS := --use_fast_math

include Makefile.CUDA

OBJS =  MyReduction_kernel.o MyReduction.o InitArrayGPU.o

all : exo03

# CPP -> OBJET

MyReduction.o : MyReduction.cpp MyReduction.hpp MyReduction.h
	$(GCC) $(CCFLAGS) $(EXTRA_CCFLAGS) $(INCLUDES) -o $@ -c $<

exo03.o : exo03.cpp exo03func.hpp MyReduction.hpp InitArray.hpp MyReduction.h

InitArray.o : InitArray.cpp InitArray.hpp InitArrayFunc.hpp

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

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

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

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

CLEAN : 
	@rm -rf exo03 *.log *.lol *.aux *.dvi *.out *.pdf *.toc *~ *.o obj bin
	
run : exo03
	./exo03 -type=double

.PHONY: doc

doc :
	doxygen doxygen.cfg_auto
	#cp *.css doc/html/