1KOKKOS_PATH = ../../../.. 2KOKKOS_SRC_PATH = ${KOKKOS_PATH} 3SRC = $(wildcard ${KOKKOS_SRC_PATH}/example/tutorial/Advanced_Views/04_dualviews/*.cpp) 4vpath %.cpp $(sort $(dir $(SRC))) 5 6default: build 7 echo "Start Build" 8 9ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES))) 10CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper 11CXXFLAGS = -O3 12LINK = ${CXX} 13LDFLAGS = 14EXE = 04_dualviews.cuda 15KOKKOS_DEVICES = "Cuda,OpenMP" 16KOKKOS_ARCH = "SNB,Kepler35" 17else 18CXX = g++ 19CXXFLAGS = -O3 20LINK = ${CXX} 21LDFLAGS = 22EXE = 04_dualviews.host 23KOKKOS_DEVICES = "OpenMP" 24KOKKOS_ARCH = "SNB" 25endif 26 27 28DEPFLAGS = -M 29 30OBJ = $(notdir $(SRC:.cpp=.o)) 31LIB = 32 33include $(KOKKOS_PATH)/Makefile.kokkos 34 35build: $(EXE) 36 37test: $(EXE) 38 ./$(EXE) 39 40$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) 41 $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE) 42 43clean: kokkos-clean 44 rm -f *.o *.cuda *.host 45 46# Compilation rules 47 48%.o:%.cpp $(KOKKOS_CPP_DEPENDS) 49 $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@) 50