1#-------------------------------------------------------------------------------
2# GraphBLAS/CUDA/Makefile
3#-------------------------------------------------------------------------------
4
5# cuda 10.1 is assumed
6
7SRC = GB*.cu
8SRC2 = $(notdir $(wildcard $(SRC)))
9OBJ = $(SRC2:.cu=.o)
10
11I = -I. -I../Source -I../Source/Template -I../Include
12SO_NAME = libgraphblascuda.a
13
14LIBS = -L/usr/local/cuda/lib64 -lcudadevrt -lcudart
15
16CUDA_OPTS = -O2 --cudart=shared \
17        --relocatable-device-code true \
18        --std=c++11 -Xcompiler -fPIC
19
20$(SO_NAME): $(OBJ)
21	echo $(OBJ)
22	ar rv $@ $^
23
24%.o: %.cu
25	nvcc -c $(I) $(CUDA_OPTS) -o $@ $< $(LIBS)
26
27config:
28	nvidia-smi
29	nvcc --version
30	@echo " "
31	@echo "SO_NAME:   " $(SO_NAME)
32	@echo "SO_OPTS:   " $(SO_OPTS)
33	@echo "LIBS:      " $(LIBS)
34	@echo "CUDA_OPTS: " $(CUDA_OPTS)
35	@echo "SRC:       " $(SRC)
36	@echo "OBJ:       " $(OBJ)
37	@echo "I:         " $(I)
38	@echo " "
39	gcc  --version
40	icc  --version
41
42clean:
43	rm -f *.o
44
45distclean: clean
46	rm -f *.so
47
48purge: distclean
49
50