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