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