CXX = mpic++ CXXFLAGS = -std=c++17 -O2 -Wall -Wextra -Wno-cast-function-type -fopenmp NVCC = nvcc NVCCFLAGS = -O3 -std=c++17 -arch=sm_86 -Xcompiler -fPIC SRC_DIR = src BUILD_DIR = build SRCS = $(wildcard $(SRC_DIR)/*.cpp) OBJS = $(patsubst $(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SRCS)) TARGET = $(BUILD_DIR)/bitcoin_app PLUGIN_SRC = $(SRC_DIR)/gpu_plugin.cu PLUGIN = $(BUILD_DIR)/libgpu_compute.so all: $(PLUGIN) $(TARGET) $(BUILD_DIR): mkdir -p $(BUILD_DIR) $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp | $(BUILD_DIR) $(CXX) $(CXXFLAGS) -c $< -o $@ $(TARGET): $(OBJS) $(CXX) $(CXXFLAGS) $^ -o $@ -ldl $(PLUGIN): $(PLUGIN_SRC) | $(BUILD_DIR) $(NVCC) $(NVCCFLAGS) -shared $< -o $@ clean: rm -rf $(BUILD_DIR) run: all sbatch run.slurm .PHONY: all clean run