-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
65 lines (46 loc) · 1.32 KB
/
Makefile
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
.DEFAULT: main
CC = nvcc
CXX = nvcc
OPENGL_LIBS = -lglfw -lGLEW -lGL
VTK_INCL = -I/usr/include/vtk-5.4/
VTK_LIBS = -lvtkCommon -lvtkIO
OTHER_INCL = -I./include
#OTHER_LIBS = -L./lib -ljsoncpp
OTHER_FILES = ./lib/libjsoncpp.a
NVCC_INCL = $(VTK_INCL) $(OTHER_INCL)
NVCC_LIBS = $(OPENGL_LIBS) $(VTK_LIBS) $(OTHER_LIBS)
CUDA_SRCS = \
CUDATimer.cu \
ParticleSet.cu \
ParticleSetOpenGLVBO.cu \
ParticleSetOpenGLVBORenderer.cu \
WindData.cu \
advect_runge_kutta.cu \
vtk_io.cu \
# \
advect_original.cu \
CUDA_OBJS = $(addsuffix .o, $(basename $(CUDA_SRCS)))
%.o : %.cu
nvcc -c $^ $(NVCC_INCL)
% : %.cu
nvcc -o $@ $^ $(NVCC_INCL)
# NOTE: for some reason 'main.cu' has to be at the END of the files to be compiled
# (nvcc bug as of v4.0)
main: OGLShaderManager.o OGLController.o OGLCube.o $(CUDA_OBJS) main.cu
nvcc -o $@ $^ $(OTHER_FILES) $(NVCC_INCL) $(NVCC_LIBS)
TESTS :=
testWindData: WindData.o testWindData.cu
nvcc -o $@ $^ $(NVCC_INCL) $(NVCC_LIBS)
TESTS += testWindData
testOGLShaderManager: testOGLShaderManager.cpp OGLShaderManager.o
g++ -o $@ $^ $(OPENGL_LIBS)
TESTS += testOGLShaderManager
testOGLCamera: testOGLCamera.cpp OGLCamera.o loadShaders.o
g++ -o $@ $^ $(OPENGL_LIBS)
TESTS += testOGLCamera
test: $(TESTS)
.PHONY : clean
clean:
rm -f *.o
rm -f main
rm -f $(TESTS)