-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.common
103 lines (85 loc) · 1.88 KB
/
Makefile.common
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
103
#
# This Makefile depends on GNU make.
#
###
### The one set of compile-time tunables: whether to support capturing input
### from a camera via the OpenCV framework. To disable it, comment out the
### OPENCV_SUPPORT line.
###
OPENCV_SUPPORT = true
OPENCV_LDFLAGS =
OPENCV_LDLIBS = -lopencv_videoio -lopencv_core
# ----------------------------------------------------------------------
CC = gcc
CFLAGS = -O3 -m64 -I. -I../common
OS := $(shell uname -s)
CFLAGS += -Wno-deprecated-declarations
LOADFIX = /bin/true
RM_LOADFIX = /bin/true
ifeq ($(OS), Darwin)
LDLIBS = -framework OpenCL -framework OpenGL -framework GLUT
LOADFIX = ../loadfix
RM_LOADFIX = /bin/rm -f $(LOADFIX)
endif
ifeq ($(OS), Linux)
LDLIBS = -lOpenCL -lGL -lglut -lm
CFLAGS += -Wno-unused-result
endif
ifeq ($(OPENCV_SUPPORT), true)
CFLAGS += -DOPENCV_SUPPORT
LDFLAGS += $(OPENCV_LDFLAGS)
LDLIBS += $(OPENCV_LDLIBS)
endif
EXEC = zounds
OBJS = basis.o \
box.o \
boxparams.o \
camera.o \
datasrc.o \
debug.o \
heatmap.o \
histogram.o \
image.o \
interp.o \
keyboard.o \
main.o \
module.o \
mouse.o \
opencl.o \
osdep.o \
param.o \
ppm.o \
randbj.o \
reduce.o \
skip.o \
stroke.o \
template.o \
texture.o \
util.o \
window.o \
$(CORE_OBJS)
CLFILES = box.cl \
color.cl \
heatmap.cl \
interp.cl \
kernel.cl \
reduce.cl \
stroke.cl \
subblock.cl
$(EXEC): $(OBJS) $(CLFILES) $(CORE_CLFILES) $(LOADFIX)
$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LDLIBS)
$(LOADFIX) $@
kernelsrc.c: $(CLFILES) $(CORE_CLFILES)
$(shell CC=$(CC) CL="$(CORE_CLFILES)" ../make-kernelsrc > kernelsrc.c)
opencl.o: kernelsrc.c
../loadfix: ../loadfix.c
$(CC) $(CFLAGS) -o $@ ../loadfix.c
$(CLFILES):
ln -s ../common/$@ $@
%.o: %.c
$(CC) $(CFLAGS) -c $<
%.o: ../common/%.c
$(CC) $(CFLAGS) -c $<
clean:
rm -f $(OBJS) $(EXEC) $(CLFILES) *~ kernelsrc.c
$(RM_LOADFIX)