Statistiques
| Révision :

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 $@)