changeset 6:e62530cdc1c3

Build stuff
author Chris Cannam
date Wed, 12 Aug 2015 12:29:51 +0100
parents dc0f2b2be9e4
children 9262806af1cd
files .hgignore .hgsub .hgsubstate Makefile.inc Makefile.linux src/PitchFilterbank.cpp vamp-plugin.list vamp-plugin.map
diffstat 8 files changed, 110 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Wed Aug 12 11:46:29 2015 +0100
+++ b/.hgignore	Wed Aug 12 12:29:51 2015 +0100
@@ -2,3 +2,6 @@
 *~
 *.orig
 *.o
+*.so
+*.a
+*.bak
--- a/.hgsub	Wed Aug 12 11:46:29 2015 +0100
+++ b/.hgsub	Wed Aug 12 12:29:51 2015 +0100
@@ -1,1 +1,2 @@
 constant-q-cpp = https://code.soundsoftware.ac.uk/hg/constant-q-cpp
+bqvec = https://bitbucket.org/breakfastquay/bqvec
--- a/.hgsubstate	Wed Aug 12 11:46:29 2015 +0100
+++ b/.hgsubstate	Wed Aug 12 12:29:51 2015 +0100
@@ -1,1 +1,2 @@
+5c47cf61c391c403a5d57ac0f7d8101ce129018b bqvec
 500416b7a651efa2a334ef0ee75fffde0d1f755d constant-q-cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.inc	Wed Aug 12 12:29:51 2015 +0100
@@ -0,0 +1,77 @@
+
+SRC_DIR  := src
+
+VAMPSDK_DIR  ?= ../vamp-plugin-sdk
+
+CQ_DIR	     ?= constant-q-cpp
+BQVEC_DIR    ?= bqvec
+
+PLUGIN_EXT	?= .so
+
+CXX	?= g++
+CC	?= gcc
+AR	?= ar
+RANLIB	?= ranlib
+
+CFLAGS := $(CFLAGS)
+CXXFLAGS := $(CFLAGS) -I. -I$(VAMPSDK_DIR) -I$(CQ_DIR) -I$(BQVEC_DIR) -I$(BQVEC_DIR) -I$(CQ_DIR)/src/dsp $(CXXFLAGS)
+
+LDFLAGS := $(LDFLAGS) 
+PLUGIN_LDFLAGS := $(LDFLAGS) $(PLUGIN_LDFLAGS)
+
+LIBRARY	       := libtipic.a
+PLUGIN	       := tipic-vamp$(PLUGIN_EXT)
+
+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_OBJECTS	:= $(LIB_SOURCES:.cpp=.o)
+LIB_OBJECTS	:= $(LIB_OBJECTS:.c=.o)
+
+PLUGIN_HEADERS := 
+PLUGIN_SOURCES := 
+
+BQVEC_HEADERS	:= $(BQVEC_DIR)/Allocators.h $(BQVEC_DIR)/Restrict.h $(BQVEC_DIR)/VectorOps.h
+BQVEC_SOURCES	:= $(BQVEC_DIR)/src/Allocators.cpp
+
+HEADERS	     := $(PUBLIC_HEADERS) $(LIB_HEADERS) $(PLUGIN_HEADERS) $(BQVEC_HEADERS)
+SOURCES	     := $(PUBLIC_SOURCES) $(LIB_SOURCES) $(PLUGIN_SOURCES) $(BQVEC_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)
+
+.PHONY: constant-q-cpp
+constant-q-cpp: 
+	$(MAKE) -C $@ -f Makefile$(MAKEFILE_EXT) libcq.a
+
+$(PLUGIN):	$(PLUGIN_OBJECTS) $(LIBS)
+	$(CXX) -o $@ $^ $(LIBS) $(PLUGIN_LDFLAGS)
+
+$(LIBRARY):    $(LIB_OBJECTS)
+	$(RM) -f $@
+	$(AR) cr $@ $^
+	$(RANLIB) $@
+
+clean:		
+	rm -f $(OBJECTS)
+	$(MAKE) -C constant-q-cpp -f Makefile$(MAKEFILE_EXT) clean
+
+distclean:	clean
+	rm -f $(PLUGIN)
+
+depend:
+	makedepend -I$(BQVEC_DIR) -Y -fMakefile.inc $(SOURCES) $(HEADERS)
+
+# DO NOT DELETE
+
+src/Filter.o: src/Filter.h bqvec/bqvec/Restrict.h bqvec/bqvec/VectorOps.h
+src/Filter.o: bqvec/bqvec/Restrict.h bqvec/bqvec/Allocators.h
+src/Filter.o: bqvec/bqvec/VectorOps.h
+src/PitchFilterbank.o: src/PitchFilterbank.h src/Filter.h
+src/PitchFilterbank.o: bqvec/bqvec/Restrict.h src/delays.h src/filter-a.h
+src/PitchFilterbank.o: src/filter-b.h
+src/Filter.o: bqvec/bqvec/Restrict.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Makefile.linux	Wed Aug 12 12:29:51 2015 +0100
@@ -0,0 +1,16 @@
+
+CFLAGS := -Wall -O3 -ffast-math -msse -msse2 -mfpmath=sse -ftree-vectorize -fPIC -I../vamp-plugin-sdk/ 
+
+#CFLAGS := -g -fPIC -I../vamp-plugin-sdk
+
+CXXFLAGS := $(CFLAGS) -std=c++11
+
+VAMPSDK_DIR := ../vamp-plugin-sdk
+PLUGIN_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,-z,defs -Wl,--version-script=vamp-plugin.map -lpthread
+
+PLUGIN_EXT := .so
+
+MAKEFILE_EXT  := .linux
+
+include Makefile.inc
+
--- a/src/PitchFilterbank.cpp	Wed Aug 12 11:46:29 2015 +0100
+++ b/src/PitchFilterbank.cpp	Wed Aug 12 12:29:51 2015 +0100
@@ -8,6 +8,8 @@
 #include "filter-a.h"
 #include "filter-b.h"
 
+#include <stdexcept>
+
 using namespace std;
 
 static const int HIGHEST_FILTER_INDEX_AT_882 = 38;   // MIDI pitch 59
@@ -76,14 +78,15 @@
     // has effective delay filter_delay[20+n].
     vector<Filter> m_filters;
 
-    static int filterIndexForMidiPitch(int pitch) {
+    int filterIndexForMidiPitch(int pitch) const {
 	return pitch - 21;
     }
-    static int filterDelay(int filterIndex) {
+    int filterDelay(int filterIndex) const {
 	return filter_delay[20 + filterIndex];
     }
-    static int totalDelay(int filterIndex) {
-	return filterDelay(filterIndex) + resamplerFor(filterIndex).getLatency();
+    int totalDelay(int filterIndex) const {
+	return filterDelay(filterIndex) +
+	    const_cast<D *>(this)->resamplerFor(filterIndex).getLatency();
     }
 };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vamp-plugin.list	Wed Aug 12 12:29:51 2015 +0100
@@ -0,0 +1,1 @@
+_vampGetPluginDescriptor
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vamp-plugin.map	Wed Aug 12 12:29:51 2015 +0100
@@ -0,0 +1,4 @@
+{
+	global: vampGetPluginDescriptor;
+	local: *;
+};