annotate Makefile.inc @ 18:c785eaaeac40

Add DCT implementation
author Chris Cannam
date Thu, 24 Sep 2015 12:45:43 +0100
parents fa87ce20fe8c
children 51eb8b1a1910
rev   line source
Chris@6 1
Chris@6 2 SRC_DIR := src
Chris@6 3
Chris@6 4 VAMPSDK_DIR ?= ../vamp-plugin-sdk
Chris@6 5
Chris@6 6 CQ_DIR ?= constant-q-cpp
Chris@6 7 BQVEC_DIR ?= bqvec
Chris@6 8
Chris@6 9 PLUGIN_EXT ?= .so
Chris@6 10
Chris@6 11 CXX ?= g++
Chris@6 12 CC ?= gcc
Chris@6 13 AR ?= ar
Chris@6 14 RANLIB ?= ranlib
Chris@6 15
Chris@6 16 CFLAGS := $(CFLAGS)
Chris@7 17 CXXFLAGS := $(CFLAGS) -I. -I$(VAMPSDK_DIR) -I$(CQ_DIR) -I$(BQVEC_DIR) -I$(BQVEC_DIR)/bqvec -I$(CQ_DIR)/src/dsp $(CXXFLAGS)
Chris@6 18
Chris@6 19 LDFLAGS := $(LDFLAGS)
Chris@6 20 PLUGIN_LDFLAGS := $(LDFLAGS) $(PLUGIN_LDFLAGS)
Chris@6 21
Chris@6 22 LIBRARY := libtipic.a
Chris@6 23 PLUGIN := tipic-vamp$(PLUGIN_EXT)
Chris@6 24
Chris@6 25 PUBLIC_HEADERS :=
Chris@6 26
Chris@18 27 LIB_HEADERS := $(SRC_DIR)/delays.h $(SRC_DIR)/filter-a.h $(SRC_DIR)/filter-b.h $(SRC_DIR)/Filter.h $(SRC_DIR)/PitchFilterbank.h $(SRC_DIR)/DCT.h
Chris@18 28 LIB_SOURCES := $(SRC_DIR)/Filter.cpp $(SRC_DIR)/PitchFilterbank.cpp $(SRC_DIR)/DCT.cpp
Chris@6 29 LIB_OBJECTS := $(LIB_SOURCES:.cpp=.o)
Chris@6 30 LIB_OBJECTS := $(LIB_OBJECTS:.c=.o)
Chris@6 31
Chris@7 32 PLUGIN_HEADERS := $(SRC_DIR)/TipicVampPlugin.h
Chris@10 33 PLUGIN_SOURCES := $(SRC_DIR)/TipicVampPlugin.cpp $(SRC_DIR)/libmain.cpp
Chris@18 34 PLUGIN_OBJECTS := $(PLUGIN_SOURCES:.cpp=.o)
Chris@18 35 PLUGIN_OBJECTS := $(PLUGIN_OBJECTS:.c=.o)
Chris@6 36
Chris@6 37 BQVEC_HEADERS := $(BQVEC_DIR)/Allocators.h $(BQVEC_DIR)/Restrict.h $(BQVEC_DIR)/VectorOps.h
Chris@6 38 BQVEC_SOURCES := $(BQVEC_DIR)/src/Allocators.cpp
Chris@18 39 BQVEC_OBJECTS := $(BQVEC_SOURCES:.cpp=.o)
Chris@18 40 BQVEC_OBJECTS := $(BQVEC_OBJECTS:.c=.o)
Chris@18 41
Chris@18 42 TEST_SOURCES := $(SRC_DIR)/test-filter.cpp $(SRC_DIR)/test-dct.cpp
Chris@18 43 TEST_OBJECTS := $(TEST_SOURCES:.cpp=.o)
Chris@18 44 TEST_OBJECTS := $(TEST_OBJECTS:.c=.o)
Chris@18 45
Chris@18 46 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 47
Chris@6 48 HEADERS := $(PUBLIC_HEADERS) $(LIB_HEADERS) $(PLUGIN_HEADERS) $(BQVEC_HEADERS)
Chris@18 49 SOURCES := $(PUBLIC_SOURCES) $(LIB_SOURCES) $(PLUGIN_SOURCES) $(BQVEC_SOURCES) $(TEST_SOURCES)
Chris@6 50 OBJECTS := $(SOURCES:.cpp=.o)
Chris@6 51 OBJECTS := $(OBJECTS:.c=.o)
Chris@6 52
Chris@6 53 LIBS := $(CQ_DIR)/libcq.a $(VAMPSDK_DIR)/libvamp-sdk.a
Chris@6 54
Chris@18 55 all: constant-q-cpp $(LIBRARY) $(PLUGIN) tests
Chris@6 56
Chris@6 57 .PHONY: constant-q-cpp
Chris@6 58 constant-q-cpp:
Chris@6 59 $(MAKE) -C $@ -f Makefile$(MAKEFILE_EXT) libcq.a
Chris@6 60
Chris@18 61 $(PLUGIN): $(PLUGIN_OBJECTS) $(LIB_OBJECTS) $(BQVEC_OBJECTS) $(LIBS)
Chris@6 62 $(CXX) -o $@ $^ $(LIBS) $(PLUGIN_LDFLAGS)
Chris@6 63
Chris@18 64 $(LIBRARY): $(LIB_OBJECTS) $(BQVEC_OBJECTS) $(OTHER_OBJECTS)
Chris@6 65 $(RM) -f $@
Chris@6 66 $(AR) cr $@ $^
Chris@6 67 $(RANLIB) $@
Chris@6 68
Chris@18 69 .PHONY: tests
Chris@18 70 tests: test-dct test-filter
Chris@18 71 ./test-dct
Chris@18 72 ./test-filter
Chris@18 73
Chris@18 74 test-dct: $(TEST_OBJECTS) $(LIBRARY)
Chris@18 75 $(CXX) -o $@ src/test-dct.o $(LIBRARY)
Chris@18 76
Chris@18 77 test-filter: $(TEST_OBJECTS) $(LIBRARY)
Chris@18 78 $(CXX) -o $@ src/test-filter.o $(LIBRARY)
Chris@18 79
Chris@6 80 clean:
Chris@6 81 rm -f $(OBJECTS)
Chris@6 82 $(MAKE) -C constant-q-cpp -f Makefile$(MAKEFILE_EXT) clean
Chris@6 83
Chris@6 84 distclean: clean
Chris@6 85 rm -f $(PLUGIN)
Chris@6 86
Chris@6 87 depend:
Chris@6 88 makedepend -I$(BQVEC_DIR) -Y -fMakefile.inc $(SOURCES) $(HEADERS)
Chris@6 89
Chris@6 90 # DO NOT DELETE
Chris@6 91
Chris@6 92 src/Filter.o: src/Filter.h bqvec/bqvec/Restrict.h bqvec/bqvec/VectorOps.h
Chris@6 93 src/Filter.o: bqvec/bqvec/Restrict.h bqvec/bqvec/Allocators.h
Chris@6 94 src/Filter.o: bqvec/bqvec/VectorOps.h
Chris@6 95 src/PitchFilterbank.o: src/PitchFilterbank.h src/Filter.h
Chris@6 96 src/PitchFilterbank.o: bqvec/bqvec/Restrict.h src/delays.h src/filter-a.h
Chris@6 97 src/PitchFilterbank.o: src/filter-b.h
Chris@10 98 src/TipicVampPlugin.o: src/TipicVampPlugin.h src/PitchFilterbank.h
Chris@10 99 src/TipicVampPlugin.o: bqvec/bqvec/Range.h bqvec/bqvec/VectorOps.h
Chris@10 100 src/TipicVampPlugin.o: bqvec/bqvec/Restrict.h
Chris@10 101 src/libmain.o: src/TipicVampPlugin.h src/PitchFilterbank.h
Chris@6 102 src/Filter.o: bqvec/bqvec/Restrict.h
Chris@10 103 src/TipicVampPlugin.o: src/PitchFilterbank.h