NVCC := nvcc NVCC_FLAGS := -rdc=true -O3 -Xptxas -O3 \ -use_fast_math -ftz=true -prec-div=false -prec-sqrt=false \ -gencode arch=compute_75,code=sm_75 \ --default-stream per-thread \ -Wno-deprecated-gpu-targets \ --expt-relaxed-constexpr \ -I../libs/ \ -std=c++20 BUILD ?= RELEASE ifeq ($(BUILD),DEBUG) BUILD_DEFINES := -DDEBUG else BUILD_DEFINES := -DRELEASE endif MAIN_SOURCE := ../sources/main.cu LIBS_DIR := ../libs/ BUILD_DIR := ../build LIBS_SOURCES := $(wildcard $(LIBS_DIR)*.cu) LIBS_OBJECTS := $(patsubst $(LIBS_DIR)%.cu,$(BUILD_DIR)/%.o,$(LIBS_SOURCES)) TARGET := yggmcu .PHONY: all clean all: $(TARGET) $(BUILD_DIR): @mkdir -p $(BUILD_DIR) $(TARGET): $(MAIN_SOURCE) $(LIBS_OBJECTS) $(NVCC) $(NVCC_FLAGS) $(BUILD_DEFINES) -o $@ $^ $(BUILD_DIR)/%.o: $(LIBS_DIR)%.cu | $(BUILD_DIR) $(NVCC) $(NVCC_FLAGS) $(BUILD_DEFINES) -c $< -o $@ clean: @rm -f $(BUILD_DIR)/*.o $(TARGET)