root / Pi / C / Kokkos / Makefile @ 248
Historique | Voir | Annoter | Télécharger (1,46 ko)
1 | 188 | equemene | KOKKOS_PATH = ./kokkos-2.7.00 |
---|---|---|---|
2 | 188 | equemene | KOKKOS_SRC_PATH = ${KOKKOS_PATH} |
3 | 188 | equemene | # SRC = $(wildcard ${KOKKOS_SRC_PATH}/example/tutorial/07_Pi/*.cpp) |
4 | 188 | equemene | SRC = Pi_Kokkos.cpp |
5 | 188 | equemene | vpath %.cpp $(sort $(dir $(SRC))) |
6 | 188 | equemene | |
7 | 188 | equemene | COMPUTING=INT32 INT64 FP32 FP64 |
8 | 188 | equemene | MARSAGLIA=SHR3 CONG MWC KISS |
9 | 188 | equemene | |
10 | 188 | equemene | # COMPUTING=FP32 |
11 | 188 | equemene | # MARSAGLIA=MWC |
12 | 188 | equemene | |
13 | 188 | equemene | default: build |
14 | 188 | equemene | echo "Start Build" |
15 | 188 | equemene | |
16 | 188 | equemene | ifneq (,$(findstring Cuda,$(KOKKOS_DEVICES))) |
17 | 188 | equemene | CXX = ${KOKKOS_PATH}/bin/nvcc_wrapper |
18 | 188 | equemene | CXXFLAGS = -O3 |
19 | 188 | equemene | LINK = ${CXX} |
20 | 188 | equemene | LDFLAGS = |
21 | 188 | equemene | EXE=cuda |
22 | 188 | equemene | else |
23 | 188 | equemene | CXX = g++ |
24 | 188 | equemene | CXXFLAGS = -O3 |
25 | 188 | equemene | LINK = ${CXX} |
26 | 188 | equemene | LDFLAGS = |
27 | 188 | equemene | EXE=host |
28 | 188 | equemene | endif |
29 | 188 | equemene | |
30 | 188 | equemene | DEPFLAGS = -M |
31 | 188 | equemene | |
32 | 188 | equemene | OBJ = $(foreach TVAR,$(COMPUTING),$(foreach TRND,$(MARSAGLIA),$(notdir $(SRC:.cpp=))_$(TVAR)_$(TRND).o ) ) |
33 | 188 | equemene | LIB = |
34 | 188 | equemene | |
35 | 188 | equemene | include $(KOKKOS_PATH)/Makefile.kokkos |
36 | 188 | equemene | |
37 | 188 | equemene | build: $(EXE) |
38 | 188 | equemene | |
39 | 188 | equemene | test: $(EXE) |
40 | 188 | equemene | ./$(EXE) |
41 | 188 | equemene | |
42 | 188 | equemene | $(EXE): $(OBJ) $(KOKKOS_LINK_DEPENDS) |
43 | 188 | equemene | @echo $(OBJ) |
44 | 188 | equemene | $(foreach TVAR,$(COMPUTING),$(foreach TRND,$(MARSAGLIA), $(LINK) $(KOKKOS_LDFLAGS) $(LDFLAGS) $(EXTRA_PATH) $(SRC:.cpp=)_$(TVAR)_$(TRND).o $(KOKKOS_LIBS) $(LIB) -o $(SRC:.cpp=)_$(TVAR)_$(TRND).$(EXE) ; ) ) |
45 | 188 | equemene | |
46 | 188 | equemene | clean: kokkos-clean |
47 | 188 | equemene | rm -f *.o |
48 | 188 | equemene | |
49 | 188 | equemene | mrproper: kokkos-clean |
50 | 188 | equemene | rm -f *.o *.cuda *.host |
51 | 188 | equemene | |
52 | 188 | equemene | # Compilation rules |
53 | 188 | equemene | |
54 | 188 | equemene | $(OBJ):$(SRC) $(KOKKOS_CPP_DEPENDS) |
55 | 188 | equemene | $(foreach TVAR,$(COMPUTING),$(foreach TRND,$(MARSAGLIA),$(CXX) $(CFLAGS) -DT$(TVAR) -DT$(TRND) -DLONG -DTIME $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c -o $(<:.cpp=)_$(TVAR)_$(TRND).o $< ; ) ) |
56 | 188 | equemene | |
57 | 188 | equemene | # %.o:%.cpp $(KOKKOS_CPP_DEPENDS) |
58 | 188 | equemene | # @echo $(OBJ2) |
59 | 188 | equemene | # $(CXX) $(KOKKOS_CPPFLAGS) $(KOKKOS_CXXFLAGS) $(CXXFLAGS) $(EXTRA_INC) -c $< -o $(notdir $@) |