1 2GXX ?= g++ 3DOXYGEN ?= doxygen 4CXXFLAGS ?= -O3 -Wall -g -fmessage-length=80 5 6CXX11 ?= 0 7CXX14 ?= 1 8 9CUDA_DIR ?= /usr/local/cuda 10 11CXXFLAGS += -pthread 12 13ifeq ($(CXX11),1) 14 CXXFLAGS += -std=c++11 15endif 16ifeq ($(CXX14),1) 17 CXXFLAGS += -std=c++14 18endif 19 20EMBED_BEGIN = -rdynamic -Wl,-b,binary, 21EMBED_END = ,-b,default 22 23UNAME_S := $(shell uname -s) 24ifeq ($(UNAME_S),Linux) 25 CXXFLAGS += -D LINUX 26 CUDA_LIB_DIR = $(CUDA_DIR)/lib64 27else ifeq ($(UNAME_S),Darwin) 28 CUDA_LIB_DIR = $(CUDA_DIR)/lib 29endif 30 31INC += -I$(CUDA_DIR)/include 32LIB += -ldl -L$(CUDA_LIB_DIR) -lcuda -lcudart -lnvrtc 33 34HEADERS = jitify.hpp 35 36TEMPLATES := $(wildcard *.cutmp) 37 38JIT_TEMP := $(patsubst %.cutmp, %.cu.jit, $(TEMPLATES)) 39 40jitFactory: jitFactory.cpp $(HEADERS) $(JIT_TEMP) 41 $(GXX) -o $@ $< $(CXXFLAGS) $(INC) $(LIB) 42 43%.cu: %.cutmp 44 cp $? $@ 45 46%.cu.jit: %.cu 47 ./stringify $? > $@ 48 49stringify: stringify.cpp 50 $(GXX) -o $@ $< -O3 -Wall 51 52doc: jitify.hpp Doxyfile 53 $(DOXYGEN) Doxyfile 54.PHONY: doc 55 56clean: 57 rm -f stringify 58 rm -f jitFactory 59.PHONY: clean 60