diff Makefile.inc @ 18:c785eaaeac40

Add DCT implementation
author Chris Cannam
date Thu, 24 Sep 2015 12:45:43 +0100
parents fa87ce20fe8c
children 51eb8b1a1910
line wrap: on
line diff
--- a/Makefile.inc	Thu Aug 20 17:22:25 2015 +0100
+++ b/Makefile.inc	Thu Sep 24 12:45:43 2015 +0100
@@ -24,38 +24,59 @@
 
 PUBLIC_HEADERS	:=
 
-LIB_HEADERS	:= $(SRC_DIR)/delays.h $(SRC_DIR)/filter-a.h $(SRC_DIR)/filter-b.h $(SRC_DIR)/Filter.h $(SRC_DIR)/PitchFilterbank.h
-LIB_SOURCES	:= $(SRC_DIR)/Filter.cpp $(SRC_DIR)/PitchFilterbank.cpp
+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
+LIB_SOURCES	:= $(SRC_DIR)/Filter.cpp $(SRC_DIR)/PitchFilterbank.cpp $(SRC_DIR)/DCT.cpp
 LIB_OBJECTS	:= $(LIB_SOURCES:.cpp=.o)
 LIB_OBJECTS	:= $(LIB_OBJECTS:.c=.o)
 
 PLUGIN_HEADERS  := $(SRC_DIR)/TipicVampPlugin.h
 PLUGIN_SOURCES  := $(SRC_DIR)/TipicVampPlugin.cpp $(SRC_DIR)/libmain.cpp
+PLUGIN_OBJECTS	:= $(PLUGIN_SOURCES:.cpp=.o)
+PLUGIN_OBJECTS	:= $(PLUGIN_OBJECTS:.c=.o)
 
 BQVEC_HEADERS	:= $(BQVEC_DIR)/Allocators.h $(BQVEC_DIR)/Restrict.h $(BQVEC_DIR)/VectorOps.h
 BQVEC_SOURCES	:= $(BQVEC_DIR)/src/Allocators.cpp
+BQVEC_OBJECTS	:= $(BQVEC_SOURCES:.cpp=.o)
+BQVEC_OBJECTS	:= $(BQVEC_OBJECTS:.c=.o)
+
+TEST_SOURCES	:= $(SRC_DIR)/test-filter.cpp $(SRC_DIR)/test-dct.cpp
+TEST_OBJECTS	:= $(TEST_SOURCES:.cpp=.o)
+TEST_OBJECTS	:= $(TEST_OBJECTS:.c=.o)
+
+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
 
 HEADERS	     := $(PUBLIC_HEADERS) $(LIB_HEADERS) $(PLUGIN_HEADERS) $(BQVEC_HEADERS)
-SOURCES	     := $(PUBLIC_SOURCES) $(LIB_SOURCES) $(PLUGIN_SOURCES) $(BQVEC_SOURCES)
+SOURCES	     := $(PUBLIC_SOURCES) $(LIB_SOURCES) $(PLUGIN_SOURCES) $(BQVEC_SOURCES) $(TEST_SOURCES)
 OBJECTS	     := $(SOURCES:.cpp=.o)
 OBJECTS	     := $(OBJECTS:.c=.o)
 
 LIBS	:= $(CQ_DIR)/libcq.a $(VAMPSDK_DIR)/libvamp-sdk.a
 
-all: constant-q-cpp $(LIBRARY) $(PLUGIN)
+all: constant-q-cpp $(LIBRARY) $(PLUGIN) tests
 
 .PHONY: constant-q-cpp
 constant-q-cpp: 
 	$(MAKE) -C $@ -f Makefile$(MAKEFILE_EXT) libcq.a
 
-$(PLUGIN):	$(OBJECTS) $(LIBS)
+$(PLUGIN):	$(PLUGIN_OBJECTS) $(LIB_OBJECTS) $(BQVEC_OBJECTS) $(LIBS)
 	$(CXX) -o $@ $^ $(LIBS) $(PLUGIN_LDFLAGS)
 
-$(LIBRARY):    $(LIB_OBJECTS)
+$(LIBRARY):    $(LIB_OBJECTS) $(BQVEC_OBJECTS) $(OTHER_OBJECTS)
 	$(RM) -f $@
 	$(AR) cr $@ $^
 	$(RANLIB) $@
 
+.PHONY:	tests
+tests:	test-dct test-filter
+	./test-dct
+	./test-filter
+
+test-dct:	  $(TEST_OBJECTS) $(LIBRARY)
+	$(CXX) -o $@ src/test-dct.o $(LIBRARY)
+
+test-filter:	  $(TEST_OBJECTS) $(LIBRARY)
+	$(CXX) -o $@ src/test-filter.o $(LIBRARY)
+
 clean:		
 	rm -f $(OBJECTS)
 	$(MAKE) -C constant-q-cpp -f Makefile$(MAKEFILE_EXT) clean