1KOKKOS_DEVICES=OpenMP 2KOKKOS_CUDA_OPTIONS=enable_lambda 3KOKKOS_ARCH = "SNB,Kepler35" 4 5MAKEFILE_PATH := $(subst Makefile,,$(abspath $(lastword $(MAKEFILE_LIST)))) 6 7ifndef KOKKOS_PATH 8 KOKKOS_PATH = $(MAKEFILE_PATH)../../../ 9endif 10 11SRC = $(wildcard $(MAKEFILE_PATH)*.cpp) 12HEADERS = $(wildcard $(MAKEFILE_PATH)*.hpp) 13HEADERS = $(wildcard $(MAKEFILE_PATH)/../*.hpp) 14 15vpath %.cpp $(sort $(dir $(SRC))) 16 17default: build 18 echo "Start Build" 19 20ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES))) 21CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper 22EXE = test.cuda 23else 24CXX = g++ 25EXE = test.host 26endif 27 28CXXFLAGS ?= -O0 -g -rdynamic 29override CXXFLAGS += -I$(MAKEFILE_PATH) -I$(KOKKOS_PATH)/core/unit_test -I$(KOKKOS_PATH)/tpls/gtest -DTESTFILE=$(TESTFILE) 30#SRC += $(KOKKOS_PATH)/tpls/gtest/gtest/gtest-all.cc 31 32DEPFLAGS = -M 33LINK = ${CXX} 34LINKFLAGS = -rdynamic 35 36OBJ = $(notdir $(SRC:.cpp=.o)) 37LIB = 38 39include $(KOKKOS_PATH)/Makefile.kokkos 40 41build: $(EXE) 42 43$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) gtest-all.o 44 $(LINK) $(KOKKOS_LDFLAGS) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) gtest-all.o -lpthread -o $(EXE) 45 46clean: kokkos-clean 47 rm -f *.o *.cuda *.host 48 49# Compilation rules 50 51%.o:%.cpp $(KOKKOS_CPP_DEPENDS) $(HEADERS) 52 $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@) 53 54gtest-all.o:$(KOKKOS_PATH)/tpls/gtest/gtest/gtest-all.cc 55 $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $(KOKKOS_PATH)/tpls/gtest/gtest/gtest-all.cc 56