@@ -53,8 +53,42 @@ $(C_SRC_DIR)/IMB_rma_put.c \
5353$(C_SRC_DIR ) /IMB_cpu_exploit.c \
5454$(C_SRC_DIR ) /IMB_rma_get.c \
5555$(C_SRC_DIR ) /IMB_rma_atomic.c
56- C_OBJ =$(subst $(C_SRC_DIR ) ,RMA,$(C_SRC:.c=.o ) )
56+ ifdef GPU_ENABLE
57+ override C_SRC += $(C_SRC_DIR ) /IMB_gpu_common.c
58+ override CPPFLAGS += -DGPU_ENABLE
59+ override LDFLAGS += -ldl
60+ ifdef CUDA_INCLUDE_DIR
61+ override C_SRC += $(C_SRC_DIR ) /IMB_cuda.c \
62+ $(C_SRC_DIR ) /IMB_cuda_api.c
63+ override CPPFLAGS += -I${CUDA_INCLUDE_DIR} -DCUDA_INCLUDE_DIR
64+ endif
65+ ifdef ZE_INCLUDE_DIR
66+ override C_SRC += $(C_SRC_DIR ) /IMB_ze.c \
67+ $(C_SRC_DIR ) /IMB_ze_api.c
68+ override CPPFLAGS += -I${ZE_INCLUDE_DIR} -DZE_INCLUDE_DIR
69+ endif
70+ ifndef CUDA_INCLUDE_DIR
71+ ifndef ZE_INCLUDE_DIR
72+ ifneq (clean, $(filter clean,$(MAKECMDGOALS ) ) )
73+ $(error CUDA_INCLUDE_DIR and ZE_INCLUDE_DIR are not set)
74+ endif
75+ endif
76+ endif
77+ SUBDIR: =GPU
78+ else
79+ SUBDIR: =CPU
80+ endif
81+
82+ C_OBJ =$(subst $(C_SRC_DIR ) ,RMA/$(SUBDIR ) ,$(C_SRC:.c=.o ) )
5783ADDITIONAL_OBJ += $(C_OBJ )
84+ BECHMARK_SUITE_LOCAL_OBJ =$(subst RMA/,RMA/$(SUBDIR ) /,$(BECHMARK_SUITE_LOCAL_SRC:.cpp=.o ) )
85+ ADDITIONAL_OBJ += $(BECHMARK_SUITE_LOCAL_OBJ )
5886
59- RMA/% .o : $(C_SRC_DIR ) /% .c
87+ RMA/$( SUBDIR ) / % .o : $(C_SRC_DIR ) /% .c $( SUBDIR )
6088 $(CC ) $(CFLAGS ) $(CPPFLAGS ) -DRMA -c -o $@ $<
89+
90+ RMA/$(SUBDIR ) /% .o : RMA/% .cpp $(SUBDIR )
91+ $(CXX ) $(CPPFLAGS ) $(CXXFLAGS ) -DRMA -c -o $@ $<
92+
93+ ${SUBDIR} :
94+ mkdir -p RMA/${SUBDIR}
0 commit comments