Chris@366
|
1
|
Chris@366
|
2 LIB_DIR := src
|
Chris@366
|
3 INC_DIR := cq
|
Chris@366
|
4 TEST_DIR := test
|
Chris@366
|
5 VAMP_DIR := vamp
|
Chris@366
|
6 KFFT_DIR := src/ext/kissfft
|
Chris@366
|
7
|
Chris@366
|
8 VAMPSDK_DIR ?= ../vamp-plugin-sdk
|
Chris@366
|
9
|
Chris@366
|
10 PLUGIN_EXT ?= .so
|
Chris@366
|
11
|
Chris@366
|
12 CXX ?= g++
|
Chris@366
|
13 CC ?= gcc
|
Chris@366
|
14 AR ?= ar
|
Chris@366
|
15 RANLIB ?= ranlib
|
Chris@366
|
16
|
Chris@366
|
17 #VALGRIND ?= valgrind -q
|
Chris@366
|
18
|
Chris@366
|
19 GENERAL_FLAGS := -I. -I$(VAMPSDK_DIR) -I$(INC_DIR) -I$(LIB_DIR) -I$(KFFT_DIR) -I$(KFFT_DIR)/tools -Dkiss_fft_scalar=double
|
Chris@366
|
20
|
Chris@366
|
21 CFLAGS := $(GENERAL_FLAGS) $(CFLAGS)
|
Chris@366
|
22 CXXFLAGS := $(GENERAL_FLAGS) $(CXXFLAGS)
|
Chris@366
|
23
|
Chris@366
|
24 LDFLAGS := $(LDFLAGS)
|
Chris@366
|
25 PLUGIN_LDFLAGS := $(LDFLAGS) $(PLUGIN_LDFLAGS)
|
Chris@366
|
26 TEST_LDFLAGS := $(LDFLAGS) -lboost_unit_test_framework
|
Chris@366
|
27 PF_LDFLAGS := $(LDFLAGS) -lsndfile
|
Chris@366
|
28
|
Chris@366
|
29 LIB := libcq.a
|
Chris@366
|
30 PLUGIN := cqvamp$(PLUGIN_EXT)
|
Chris@366
|
31 PF := $(TEST_DIR)/processfile
|
Chris@366
|
32
|
Chris@366
|
33 LIB_HEADERS := \
|
Chris@366
|
34 $(INC_DIR)/CQBase.h \
|
Chris@366
|
35 $(INC_DIR)/CQKernel.h \
|
Chris@366
|
36 $(INC_DIR)/ConstantQ.h \
|
Chris@366
|
37 $(INC_DIR)/CQSpectrogram.h \
|
Chris@366
|
38 $(INC_DIR)/CQInverse.h \
|
Chris@366
|
39 $(INC_DIR)/Chromagram.h \
|
Chris@366
|
40 $(LIB_DIR)/Pitch.h \
|
Chris@366
|
41 $(LIB_DIR)/dsp/FFT.h \
|
Chris@366
|
42 $(LIB_DIR)/dsp/KaiserWindow.h \
|
Chris@366
|
43 $(LIB_DIR)/dsp/MathUtilities.h \
|
Chris@366
|
44 $(LIB_DIR)/dsp/nan-inf.h \
|
Chris@366
|
45 $(LIB_DIR)/dsp/Resampler.h \
|
Chris@366
|
46 $(LIB_DIR)/dsp/SincWindow.h \
|
Chris@366
|
47 $(LIB_DIR)/dsp/Window.h \
|
Chris@366
|
48 $(KFFT_DIR)/kiss_fft.h \
|
Chris@366
|
49 $(KFFT_DIR)/tools/kiss_fftr.h
|
Chris@366
|
50
|
Chris@366
|
51 LIB_SOURCES := \
|
Chris@366
|
52 $(LIB_DIR)/CQKernel.cpp \
|
Chris@366
|
53 $(LIB_DIR)/ConstantQ.cpp \
|
Chris@366
|
54 $(LIB_DIR)/CQSpectrogram.cpp \
|
Chris@366
|
55 $(LIB_DIR)/CQInverse.cpp \
|
Chris@366
|
56 $(LIB_DIR)/Chromagram.cpp \
|
Chris@366
|
57 $(LIB_DIR)/Pitch.cpp \
|
Chris@366
|
58 $(LIB_DIR)/dsp/FFT.cpp \
|
Chris@366
|
59 $(LIB_DIR)/dsp/KaiserWindow.cpp \
|
Chris@366
|
60 $(LIB_DIR)/dsp/MathUtilities.cpp \
|
Chris@366
|
61 $(LIB_DIR)/dsp/Resampler.cpp \
|
Chris@366
|
62 $(LIB_DIR)/dsp/SincWindow.cpp \
|
Chris@366
|
63 $(KFFT_DIR)/kiss_fft.c \
|
Chris@366
|
64 $(KFFT_DIR)/tools/kiss_fftr.c
|
Chris@366
|
65
|
Chris@366
|
66 VAMP_HEADERS := \
|
Chris@366
|
67 $(VAMP_DIR)/CQVamp.h \
|
Chris@366
|
68 $(VAMP_DIR)/CQChromaVamp.h
|
Chris@366
|
69
|
Chris@366
|
70 VAMP_SOURCES := \
|
Chris@366
|
71 $(VAMP_DIR)/CQVamp.cpp \
|
Chris@366
|
72 $(VAMP_DIR)/CQChromaVamp.cpp \
|
Chris@366
|
73 $(VAMP_DIR)/libmain.cpp
|
Chris@366
|
74
|
Chris@366
|
75 TEST_SOURCES := \
|
Chris@366
|
76 $(TEST_DIR)/TestFFT.cpp \
|
Chris@366
|
77 $(TEST_DIR)/TestMathUtilities.cpp \
|
Chris@366
|
78 $(TEST_DIR)/TestResampler.cpp \
|
Chris@366
|
79 $(TEST_DIR)/TestWindow.cpp \
|
Chris@366
|
80 $(TEST_DIR)/TestCQKernel.cpp \
|
Chris@366
|
81 $(TEST_DIR)/TestCQFrequency.cpp \
|
Chris@366
|
82 $(TEST_DIR)/TestCQTime.cpp
|
Chris@366
|
83
|
Chris@366
|
84 HEADERS := $(LIB_HEADERS) $(VAMP_HEADERS)
|
Chris@366
|
85 SOURCES := $(LIB_SOURCES) $(VAMP_SOURCES)
|
Chris@366
|
86
|
Chris@366
|
87 LIB_OBJECTS := $(LIB_SOURCES:.cpp=.o)
|
Chris@366
|
88 LIB_OBJECTS := $(LIB_OBJECTS:.c=.o)
|
Chris@366
|
89
|
Chris@366
|
90 OBJECTS := $(SOURCES:.cpp=.o)
|
Chris@366
|
91 OBJECTS := $(OBJECTS:.c=.o)
|
Chris@366
|
92
|
Chris@366
|
93 TEST_OBJECTS := $(TEST_SOURCES:.cpp=.o)
|
Chris@366
|
94 TEST_TARGETS := $(TEST_SOURCES:.cpp=)
|
Chris@366
|
95
|
Chris@366
|
96 PF_SOURCES := $(TEST_DIR)/processfile.cpp
|
Chris@366
|
97 PF_OBJECTS := $(PF_SOURCES:.cpp=.o) $(OBJECTS)
|
Chris@366
|
98
|
Chris@366
|
99 LIBS := $(VAMPSDK_DIR)/libvamp-sdk.a -lpthread
|
Chris@366
|
100
|
Chris@366
|
101 default: all
|
Chris@366
|
102
|
Chris@366
|
103 all: libs $(PF) test
|
Chris@366
|
104
|
Chris@366
|
105 libs: $(LIB) $(PLUGIN)
|
Chris@366
|
106
|
Chris@366
|
107 test: libs $(TEST_TARGETS)
|
Chris@366
|
108 for t in $(TEST_TARGETS); do echo; echo "Running $$t"; $(VALGRIND) ./"$$t" || exit 1; done && echo && $(VALGRIND) "./test/test-inverse.sh" && echo 'Tests complete'
|
Chris@366
|
109
|
Chris@366
|
110 $(PLUGIN): $(OBJECTS)
|
Chris@366
|
111 $(CXX) -o $@ $^ $(LIBS) $(PLUGIN_LDFLAGS)
|
Chris@366
|
112
|
Chris@366
|
113 $(PF): $(PF_OBJECTS)
|
Chris@366
|
114 $(CXX) -o $@ $^ $(LIBS) $(PF_LDFLAGS)
|
Chris@366
|
115
|
Chris@366
|
116 $(LIB): $(LIB_OBJECTS)
|
Chris@366
|
117 $(RM) -f $@
|
Chris@366
|
118 $(AR) cr $@ $^
|
Chris@366
|
119 $(RANLIB) $@
|
Chris@366
|
120
|
Chris@366
|
121 $(TEST_DIR)/Test%: $(TEST_DIR)/Test%.o
|
Chris@366
|
122 $(CXX) -o $@ $^ $(LIB) $(LIBS) $(TEST_LDFLAGS)
|
Chris@366
|
123
|
Chris@366
|
124 clean:
|
Chris@366
|
125 rm -f $(OBJECTS) $(TEST_OBJECTS) $(PF_OBJECTS)
|
Chris@366
|
126
|
Chris@366
|
127 distclean: clean
|
Chris@366
|
128 rm -f $(PLUGIN) $(TEST_TARGETS)
|
Chris@366
|
129
|
Chris@366
|
130 depend:
|
Chris@366
|
131 makedepend -Y -fMakefile.inc $(SOURCES) $(TEST_SOURCES) $(PF_SOURCES) $(HEADERS)
|
Chris@366
|
132
|
Chris@366
|
133 # DO NOT DELETE
|
Chris@366
|
134
|
Chris@366
|
135 src/CQKernel.o: src/dsp/MathUtilities.h src/dsp/nan-inf.h src/dsp/FFT.h
|
Chris@366
|
136 src/CQKernel.o: src/dsp/Window.h
|
Chris@366
|
137 src/ConstantQ.o: src/dsp/Resampler.h src/dsp/MathUtilities.h
|
Chris@366
|
138 src/ConstantQ.o: src/dsp/nan-inf.h src/dsp/FFT.h
|
Chris@366
|
139 src/CQInverse.o: src/dsp/Resampler.h src/dsp/MathUtilities.h
|
Chris@366
|
140 src/CQInverse.o: src/dsp/nan-inf.h src/dsp/FFT.h
|
Chris@366
|
141 src/Chromagram.o: src/Pitch.h
|
Chris@366
|
142 src/Pitch.o: src/Pitch.h
|
Chris@366
|
143 src/dsp/FFT.o: src/dsp/FFT.h src/dsp/MathUtilities.h src/dsp/nan-inf.h
|
Chris@366
|
144 src/dsp/KaiserWindow.o: src/dsp/KaiserWindow.h src/dsp/MathUtilities.h
|
Chris@366
|
145 src/dsp/KaiserWindow.o: src/dsp/nan-inf.h
|
Chris@366
|
146 src/dsp/MathUtilities.o: src/dsp/MathUtilities.h src/dsp/nan-inf.h
|
Chris@366
|
147 src/dsp/Resampler.o: src/dsp/Resampler.h src/dsp/MathUtilities.h
|
Chris@366
|
148 src/dsp/Resampler.o: src/dsp/nan-inf.h src/dsp/KaiserWindow.h
|
Chris@366
|
149 src/dsp/Resampler.o: src/dsp/SincWindow.h
|
Chris@366
|
150 src/dsp/SincWindow.o: src/dsp/SincWindow.h
|
Chris@366
|
151 src/ext/kissfft/kiss_fft.o: src/ext/kissfft/_kiss_fft_guts.h
|
Chris@366
|
152 src/ext/kissfft/kiss_fft.o: src/ext/kissfft/kiss_fft.h
|
Chris@366
|
153 src/ext/kissfft/tools/kiss_fftr.o: src/ext/kissfft/tools/kiss_fftr.h
|
Chris@366
|
154 src/ext/kissfft/tools/kiss_fftr.o: src/ext/kissfft/kiss_fft.h
|
Chris@366
|
155 src/ext/kissfft/tools/kiss_fftr.o: src/ext/kissfft/_kiss_fft_guts.h
|
Chris@366
|
156 vamp/CQVamp.o: vamp/CQVamp.h cq/CQSpectrogram.h cq/ConstantQ.h cq/CQBase.h
|
Chris@366
|
157 vamp/CQVamp.o: cq/CQParameters.h cq/CQKernel.h src/Pitch.h
|
Chris@366
|
158 vamp/CQChromaVamp.o: vamp/CQChromaVamp.h cq/CQSpectrogram.h cq/ConstantQ.h
|
Chris@366
|
159 vamp/CQChromaVamp.o: cq/CQBase.h cq/CQParameters.h cq/CQKernel.h
|
Chris@366
|
160 vamp/libmain.o: vamp/CQVamp.h cq/CQSpectrogram.h cq/ConstantQ.h cq/CQBase.h
|
Chris@366
|
161 vamp/libmain.o: cq/CQParameters.h cq/CQKernel.h vamp/CQChromaVamp.h
|
Chris@366
|
162 test/TestFFT.o: src/dsp/FFT.h
|
Chris@366
|
163 test/TestMathUtilities.o: src/dsp/MathUtilities.h src/dsp/nan-inf.h
|
Chris@366
|
164 test/TestResampler.o: src/dsp/Resampler.h src/dsp/Window.h src/dsp/FFT.h
|
Chris@366
|
165 test/TestWindow.o: src/dsp/Window.h
|
Chris@366
|
166 test/TestCQKernel.o: cq/CQKernel.h cq/CQParameters.h
|
Chris@366
|
167 test/TestCQFrequency.o: cq/CQSpectrogram.h cq/ConstantQ.h cq/CQBase.h
|
Chris@366
|
168 test/TestCQFrequency.o: cq/CQParameters.h cq/CQKernel.h src/dsp/Window.h
|
Chris@366
|
169 test/TestCQTime.o: cq/CQSpectrogram.h cq/ConstantQ.h cq/CQBase.h
|
Chris@366
|
170 test/TestCQTime.o: cq/CQParameters.h cq/CQKernel.h src/dsp/Window.h
|
Chris@366
|
171 test/processfile.o: cq/ConstantQ.h cq/CQBase.h cq/CQParameters.h
|
Chris@366
|
172 test/processfile.o: cq/CQKernel.h
|
Chris@366
|
173 cq/CQKernel.o: cq/CQParameters.h
|
Chris@366
|
174 cq/ConstantQ.o: cq/CQBase.h cq/CQParameters.h cq/CQKernel.h
|
Chris@366
|
175 cq/CQSpectrogram.o: cq/ConstantQ.h cq/CQBase.h cq/CQParameters.h
|
Chris@366
|
176 cq/CQSpectrogram.o: cq/CQKernel.h
|
Chris@366
|
177 cq/CQInverse.o: cq/CQBase.h cq/CQKernel.h cq/CQParameters.h
|
Chris@366
|
178 cq/Chromagram.o: cq/CQBase.h
|
Chris@366
|
179 src/dsp/MathUtilities.o: src/dsp/nan-inf.h
|
Chris@366
|
180 src/ext/kissfft/tools/kiss_fftr.o: src/ext/kissfft/kiss_fft.h
|
Chris@366
|
181 vamp/CQVamp.o: cq/CQSpectrogram.h cq/ConstantQ.h cq/CQBase.h
|
Chris@366
|
182 vamp/CQVamp.o: cq/CQParameters.h cq/CQKernel.h
|