-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathMakefile_ogl
110 lines (69 loc) · 3.05 KB
/
Makefile_ogl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
CXX = g++
CC = gcc
LD = g++
F90 = ifort
.SUFFIXES: .o .cpp .ptx .cu
CUDA_TK = /usr/local/cuda
CUDASDK = $(HOME)/NVIDIA_GPU_Computing_SDK
# OFLAGS = -O0 -g -Wall
OFLAGS = -O3 -g -Wall
# OFLAGS = -O3 -Wall -fopenmp
CXXFLAGS = -fPIC $(OFLAGS) -I$(CUDA_TK)/include -DUSE_OPENGL -Wstrict-aliasing=2 -I ./renderer
# NVCC = $(CUDA_TK)/bin/nvcc --device-emulation
# NVCCFLAGS = -D_DEBUG -O0 -g -I$(CUDA_SDK)/common/inc -arch=sm_12 --maxrregcount=64 --opencc-options -OPT:Olimit=0 -I$(CUDPP)/cudpp/include
NVCC = $(CUDA_TK)/bin/nvcc
#NVCCFLAGS = -arch sm_20 -ftz=true -prec-div=false -prec-sqrt=false
#NVCCFLAGS = -arch sm_20 -g -G
NVCCFLAGS = -arch sm_20
#NVCCFLAGS = -arch sm_30 -Xptxas -v,-abi=no
# Use with Mac OS X
# NVCCFLAGS = -arch sm_12 -Xcompiler="-Duint=unsigned\ int"
LDFLAGS = -lcudart -lOpenCL -L $(CUDA_TK)/lib64 -lGL -lGLU -lglut -L$(CUDASDK)/shared/lib/linux -lGLEW_x86_64
#For tipsy support uncomment the following line
CXXFLAGS += -DTIPSYOUTPUT
INCLUDEPATH = ./include
CXXFLAGS += -I$(INCLUDEPATH)
NVCCFLAGS += -I$(INCLUDEPATH)
CUDAKERNELSPATH = CUDAkernels
CUDAKERNELS = build_tree.cu_o \
sortKernels.cu_o \
timestep.cu_o \
dev_approximate_gravity_warp_fermi.cu_o \
dev_approximate_gravity_let.cu_o \
compute_propertiesD.cu_o \
depthSort.cu_o \
# parallel.cu_o
SRCPATH =
SRC = src/main.cpp src/octree.cpp src/load_kernels.cpp src/build.cpp src/compute_properties.cpp src/sort_bodies_gpu.cpp src/gpu_iterate.cpp src/parallel.cpp src/libraryInterface.cpp src/renderloop.cpp src/render_particles.cpp src/dustFunctions.cpp renderer/paramgl.cpp renderer/framebufferObject.cpp renderer/GLSLProgram.cpp renderer/param.cpp renderer/SmokeRenderer.cpp renderer/SmokeShaders.cpp
OBJ = $(SRC:%.cpp=%.o)
PROG = main
AR = ar ruv
RANLIB = ranlib
RM = rm
CODELIB = libbonsai.a
all: $(OBJ) $(CODELIB) $(CUDAPTX) $(PROG)
kernels: $(CUDAPTX)
$(CODELIB): $(OBJ) $(CUDAKERNELS)
$(RM) -f $@
$(AR) $@ $(OBJ)
$(RANLIB) $@
$(PROG): $(OBJ) $(CUDAKERNELS)
$(LD) $^ -o $@ $(LDFLAGS)
%.o: $(SRCPATH)/%.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
%.ptx: $(CUDAKERNELSPATH)/%.cu
$(NVCC) $(NVCCFLAGS) -ptx $< -o $@
%.cu_o: $(CUDAKERNELSPATH)/%.cu
$(NVCC) $(NVCCFLAGS) -c $< -o $@
clean:
/bin/rm -rf *.o *.ptx main *.a *.cu_o
$(OBJ): $(INCLUDEPATH)/*.h
support_kernels.ptx: $(INCLUDEPATH)/node_specs.h
build_tree.ptx: $(CUDAKERNELSPATH)/support_kernels.cu $(INCLUDEPATH)/node_specs.h
compute_properties.ptx: $(CUDAKERNELSPATH)/support_kernels.cu $(INCLUDEPATH)/node_specs.h
compute_propertiesD.ptx: $(CUDAKERNELSPATH)/support_kernels.cu $(INCLUDEPATH)/node_specs.h
dev_approximate_gravity.ptx: $(CUDAKERNELSPATH)/support_kernels.cu $(INCLUDEPATH)/node_specs.h
dev_approximate_gravity_let.ptx: $(CUDAKERNELSPATH)/support_kernels.cu $(INCLUDEPATH)/node_specs.h
timestep.ptx: $(CUDAKERNELSPATH)/support_kernels.cu $(INCLUDEPATH)/node_specs.h
sortKernels.ptx: $(CUDAKERNELSPATH)/scanKernels.cu $(CUDAKERNELSPATH)/support_kernels.cu $(INCLUDEPATH)/node_specs.h
parallel.ptx: $(CUDAKERNELSPATH)/support_kernels.cu $(INCLUDEPATH)/node_specs.h