51 lines
1.8 KiB
Makefile
51 lines
1.8 KiB
Makefile
NVCC ?= nvcc
|
|
CXX ?= g++
|
|
ARCH ?= sm_86
|
|
|
|
CXXFLAGS = -O3 -std=c++17 -Wall -pthread -fopenmp -fPIC -Iinclude -Isrc
|
|
NVCCFLAGS = -O3 -std=c++14 -arch=$(ARCH) --use_fast_math -Xcompiler -fPIC,-Wall,-fopenmp -Iinclude -Isrc
|
|
|
|
LIB_DIR = lib
|
|
BIN_DIR = bin
|
|
BUILD_DIR = build
|
|
|
|
SHARED_LIB = $(LIB_DIR)/libcudaslicer_offset.so
|
|
STATIC_LIB = $(LIB_DIR)/libcudaslicer_offset.a
|
|
BENCH_BIN = $(BIN_DIR)/gpu_slicer_c_bench
|
|
|
|
all: $(SHARED_LIB) $(STATIC_LIB) $(BENCH_BIN)
|
|
|
|
$(BUILD_DIR)/gpu_offset.o: src/gpu_offset.cu include/gpu_offset.h src/cpu_offset.h src/vectorizer.h | $(BUILD_DIR)
|
|
$(NVCC) $(NVCCFLAGS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/gpu_sdf.o: src/gpu_sdf.cu include/gpu_sdf.h include/gpu_offset.h src/vectorizer.h | $(BUILD_DIR)
|
|
$(NVCC) $(NVCCFLAGS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/cpu_offset.o: src/cpu_offset.cpp src/cpu_offset.h src/vectorizer.h include/gpu_offset.h | $(BUILD_DIR)
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/stl_slicer.o: src/stl_slicer.cpp src/stl_slicer.h include/gpu_offset.h | $(BUILD_DIR)
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/main_bench.o: src/main_bench.cpp src/stl_slicer.h include/gpu_offset.h | $(BUILD_DIR)
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
$(SHARED_LIB): $(BUILD_DIR)/gpu_offset.o $(BUILD_DIR)/gpu_sdf.o $(BUILD_DIR)/cpu_offset.o | $(LIB_DIR)
|
|
$(NVCC) -shared -arch=$(ARCH) -o $@ $^ -lcudart
|
|
|
|
$(STATIC_LIB): $(BUILD_DIR)/gpu_offset.o $(BUILD_DIR)/gpu_sdf.o $(BUILD_DIR)/cpu_offset.o | $(LIB_DIR)
|
|
ar rcs $@ $^
|
|
|
|
$(BENCH_BIN): $(BUILD_DIR)/main_bench.o $(BUILD_DIR)/stl_slicer.o $(SHARED_LIB) | $(BIN_DIR)
|
|
$(CXX) $(CXXFLAGS) $(BUILD_DIR)/main_bench.o $(BUILD_DIR)/stl_slicer.o -L$(LIB_DIR) -lcudaslicer_offset -lcudart -Wl,-rpath,'$$ORIGIN/../lib' -o $@
|
|
|
|
$(BUILD_DIR) $(LIB_DIR) $(BIN_DIR):
|
|
mkdir -p $@
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR) $(LIB_DIR) $(BIN_DIR)
|
|
|
|
wheel:
|
|
python3 setup.py bdist_wheel
|
|
|
|
.PHONY: all clean wheel
|