1KOKKOS_PATH = ../../..
2KOKKOS_SRC_PATH = ${KOKKOS_PATH}
3SRC = $(wildcard ${KOKKOS_SRC_PATH}/example/tutorial/06_simple_mdrangepolicy/*.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 = 06_simple_mdrangepolicy.cuda
15KOKKOS_DEVICES = "Cuda,OpenMP"
16KOKKOS_ARCH = "SNB,Kepler35"
17else
18CXX = g++
19CXXFLAGS = -O3
20LINK = ${CXX}
21LDFLAGS =
22EXE = 06_simple_mdrangepolicy.host
23KOKKOS_DEVICES = "OpenMP"
24KOKKOS_ARCH = "SNB"
25endif
26
27DEPFLAGS = -M
28
29OBJ = $(notdir $(SRC:.cpp=.o))
30LIB =
31
32include $(KOKKOS_PATH)/Makefile.kokkos
33
34build: $(EXE)
35
36test: $(EXE)
37	./$(EXE)
38
39$(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS)
40	$(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(OBJ) $(KOKKOS_LIBS) $(LIB) -o $(EXE)
41
42clean: kokkos-clean
43	rm -f *.o *.cuda *.host
44
45# Compilation rules
46
47%.o:%.cpp $(KOKKOS_CPP_DEPENDS)
48	$(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@)
49