Chris@6: Chris@6: SRC_DIR := src Chris@6: Chris@6: VAMPSDK_DIR ?= ../vamp-plugin-sdk Chris@6: Chris@6: CQ_DIR ?= constant-q-cpp Chris@6: BQVEC_DIR ?= bqvec Chris@6: Chris@6: PLUGIN_EXT ?= .so Chris@6: Chris@6: CXX ?= g++ Chris@6: CC ?= gcc Chris@6: AR ?= ar Chris@6: RANLIB ?= ranlib Chris@6: Chris@6: CFLAGS := $(CFLAGS) Chris@7: CXXFLAGS := $(CFLAGS) -I. -I$(VAMPSDK_DIR) -I$(CQ_DIR) -I$(BQVEC_DIR) -I$(BQVEC_DIR)/bqvec -I$(CQ_DIR)/src/dsp $(CXXFLAGS) Chris@6: Chris@6: LDFLAGS := $(LDFLAGS) Chris@6: PLUGIN_LDFLAGS := $(LDFLAGS) $(PLUGIN_LDFLAGS) Chris@6: Chris@6: LIBRARY := libtipic.a Chris@6: PLUGIN := tipic-vamp$(PLUGIN_EXT) Chris@6: Chris@6: PUBLIC_HEADERS := Chris@6: Chris@39: LIB_HEADERS := \ Chris@39: $(SRC_DIR)/delays.h \ Chris@39: $(SRC_DIR)/filter-a.h \ Chris@39: $(SRC_DIR)/filter-b.h \ Chris@39: $(SRC_DIR)/Filter.h \ Chris@39: $(SRC_DIR)/PitchFilterbank.h \ Chris@39: $(SRC_DIR)/DCT.h \ Chris@39: $(SRC_DIR)/Types.h \ Chris@39: $(SRC_DIR)/CRP.h \ Chris@39: $(SRC_DIR)/Normalise.h \ Chris@39: $(SRC_DIR)/LogCompress.h \ Chris@39: $(SRC_DIR)/OctaveFold.h \ Chris@39: $(SRC_DIR)/Resize.h \ Chris@39: $(SRC_DIR)/Chroma.h \ Chris@39: $(SRC_DIR)/FeatureDownsample.h \ Chris@39: $(SRC_DIR)/Quantize.h \ Chris@39: $(SRC_DIR)/CENS.h Chris@39: Chris@39: LIB_SOURCES := \ Chris@39: $(SRC_DIR)/Filter.cpp \ Chris@39: $(SRC_DIR)/PitchFilterbank.cpp \ Chris@39: $(SRC_DIR)/DCT.cpp \ Chris@39: $(SRC_DIR)/CRP.cpp \ Chris@39: $(SRC_DIR)/Normalise.cpp \ Chris@39: $(SRC_DIR)/Chroma.cpp \ Chris@39: $(SRC_DIR)/FeatureDownsample.cpp \ Chris@39: $(SRC_DIR)/CENS.cpp Chris@39: Chris@6: LIB_OBJECTS := $(LIB_SOURCES:.cpp=.o) Chris@6: LIB_OBJECTS := $(LIB_OBJECTS:.c=.o) Chris@6: Chris@7: PLUGIN_HEADERS := $(SRC_DIR)/TipicVampPlugin.h Chris@10: PLUGIN_SOURCES := $(SRC_DIR)/TipicVampPlugin.cpp $(SRC_DIR)/libmain.cpp Chris@18: PLUGIN_OBJECTS := $(PLUGIN_SOURCES:.cpp=.o) Chris@18: PLUGIN_OBJECTS := $(PLUGIN_OBJECTS:.c=.o) Chris@6: Chris@6: BQVEC_HEADERS := $(BQVEC_DIR)/Allocators.h $(BQVEC_DIR)/Restrict.h $(BQVEC_DIR)/VectorOps.h Chris@6: BQVEC_SOURCES := $(BQVEC_DIR)/src/Allocators.cpp Chris@18: BQVEC_OBJECTS := $(BQVEC_SOURCES:.cpp=.o) Chris@18: BQVEC_OBJECTS := $(BQVEC_OBJECTS:.c=.o) Chris@18: Chris@21: TEST_SOURCES := $(SRC_DIR)/test-filter.cpp $(SRC_DIR)/test-dct.cpp $(SRC_DIR)/test-normalise.cpp Chris@18: TEST_OBJECTS := $(TEST_SOURCES:.cpp=.o) Chris@18: TEST_OBJECTS := $(TEST_OBJECTS:.c=.o) Chris@18: Chris@18: OTHER_OBJECTS := $(CQ_DIR)/src/dsp/FFT.o $(CQ_DIR)/src/ext/kissfft/kiss_fft.o $(CQ_DIR)/src/ext/kissfft/tools/kiss_fftr.o Chris@6: Chris@6: HEADERS := $(PUBLIC_HEADERS) $(LIB_HEADERS) $(PLUGIN_HEADERS) $(BQVEC_HEADERS) Chris@18: SOURCES := $(PUBLIC_SOURCES) $(LIB_SOURCES) $(PLUGIN_SOURCES) $(BQVEC_SOURCES) $(TEST_SOURCES) Chris@6: OBJECTS := $(SOURCES:.cpp=.o) Chris@6: OBJECTS := $(OBJECTS:.c=.o) Chris@6: Chris@6: LIBS := $(CQ_DIR)/libcq.a $(VAMPSDK_DIR)/libvamp-sdk.a Chris@6: Chris@18: all: constant-q-cpp $(LIBRARY) $(PLUGIN) tests Chris@6: Chris@6: .PHONY: constant-q-cpp Chris@6: constant-q-cpp: Chris@6: $(MAKE) -C $@ -f Makefile$(MAKEFILE_EXT) libcq.a Chris@6: Chris@18: $(PLUGIN): $(PLUGIN_OBJECTS) $(LIB_OBJECTS) $(BQVEC_OBJECTS) $(LIBS) Chris@6: $(CXX) -o $@ $^ $(LIBS) $(PLUGIN_LDFLAGS) Chris@6: Chris@18: $(LIBRARY): $(LIB_OBJECTS) $(BQVEC_OBJECTS) $(OTHER_OBJECTS) Chris@6: $(RM) -f $@ Chris@6: $(AR) cr $@ $^ Chris@6: $(RANLIB) $@ Chris@6: Chris@18: .PHONY: tests Chris@21: tests: test-dct test-filter test-normalise Chris@18: ./test-dct Chris@18: ./test-filter Chris@21: ./test-normalise Chris@18: Chris@18: test-dct: $(TEST_OBJECTS) $(LIBRARY) Chris@18: $(CXX) -o $@ src/test-dct.o $(LIBRARY) Chris@18: Chris@18: test-filter: $(TEST_OBJECTS) $(LIBRARY) Chris@18: $(CXX) -o $@ src/test-filter.o $(LIBRARY) Chris@18: Chris@21: test-normalise: $(TEST_OBJECTS) $(LIBRARY) Chris@21: $(CXX) -o $@ src/test-normalise.o $(LIBRARY) Chris@21: Chris@6: clean: Chris@6: rm -f $(OBJECTS) Chris@6: $(MAKE) -C constant-q-cpp -f Makefile$(MAKEFILE_EXT) clean Chris@6: Chris@6: distclean: clean Chris@6: rm -f $(PLUGIN) Chris@6: Chris@6: depend: Chris@6: makedepend -I$(BQVEC_DIR) -Y -fMakefile.inc $(SOURCES) $(HEADERS) Chris@6: Chris@6: # DO NOT DELETE Chris@6: Chris@6: src/Filter.o: src/Filter.h bqvec/bqvec/Restrict.h bqvec/bqvec/VectorOps.h Chris@6: src/Filter.o: bqvec/bqvec/Restrict.h bqvec/bqvec/Allocators.h Chris@24: src/PitchFilterbank.o: src/PitchFilterbank.h src/Types.h src/Filter.h Chris@6: src/PitchFilterbank.o: bqvec/bqvec/Restrict.h src/delays.h src/filter-a.h Chris@6: src/PitchFilterbank.o: src/filter-b.h Chris@24: src/DCT.o: src/DCT.h Chris@26: src/CRP.o: src/CRP.h src/Types.h src/DCTReduce.h src/DCT.h src/Normalise.h Chris@26: src/CRP.o: src/LogCompress.h src/OctaveFold.h src/Resize.h Chris@24: src/Normalise.o: src/Normalise.h Chris@39: src/Chroma.o: src/Chroma.h src/Types.h src/Normalise.h src/LogCompress.h Chris@39: src/Chroma.o: src/OctaveFold.h src/Resize.h Chris@35: src/FeatureDownsample.o: src/FeatureDownsample.h src/Types.h src/Filter.h Chris@39: src/FeatureDownsample.o: bqvec/bqvec/Restrict.h src/Normalise.h Chris@39: src/CENS.o: src/CENS.h src/Types.h src/Quantize.h src/Normalise.h Chris@39: src/CENS.o: src/OctaveFold.h src/Resize.h Chris@24: src/TipicVampPlugin.o: src/TipicVampPlugin.h src/Types.h Chris@26: src/TipicVampPlugin.o: src/PitchFilterbank.h src/CRP.h src/DCTReduce.h Chris@39: src/TipicVampPlugin.o: src/DCT.h src/Chroma.h src/CENS.h src/Quantize.h Chris@39: src/TipicVampPlugin.o: src/FeatureDownsample.h bqvec/bqvec/Range.h Chris@39: src/TipicVampPlugin.o: bqvec/bqvec/VectorOps.h bqvec/bqvec/Restrict.h Chris@24: src/libmain.o: src/TipicVampPlugin.h src/Types.h Chris@24: src/test-filter.o: src/Filter.h bqvec/bqvec/Restrict.h Chris@24: src/test-dct.o: src/DCT.h Chris@24: src/test-normalise.o: src/Normalise.h Chris@6: src/Filter.o: bqvec/bqvec/Restrict.h Chris@24: src/PitchFilterbank.o: src/Types.h Chris@26: src/CRP.o: src/Types.h src/DCTReduce.h src/DCT.h Chris@39: src/Chroma.o: src/Types.h Chris@35: src/FeatureDownsample.o: src/Types.h Chris@39: src/CENS.o: src/Types.h src/Quantize.h Chris@24: src/TipicVampPlugin.o: src/Types.h