cannam@0: cannam@0: # Location of Vamp SDK cannam@0: # cannam@0: VAMPDIR = ../vamp-plugin-sdk cannam@0: VAMPLIBDIR = $(VAMPDIR)/vamp-sdk cannam@0: cannam@0: # Location of our plugins cannam@0: # cannam@0: PLUGINDIR = plugins cannam@0: cannam@0: # Compile flags cannam@0: # cannam@8: #CXXFLAGS := $(CXXFLAGS) -DNDEBUG -O2 -march=pentium3 -mfpmath=sse -ffast-math -Wall -I$(VAMPDIR) -I. cannam@8: CXXFLAGS := $(CXXFLAGS) -DDEBUG -g -Wall -I$(VAMPDIR) -I. cannam@8: cannam@0: cannam@0: # Libraries required for the plugins. Note that we can (and actively cannam@0: # want to) statically link libstdc++, because our plugin exposes only cannam@0: # a C API so there are no boundary compatibility problems. cannam@0: # cannam@0: PLUGIN_LIBS = -L$(VAMPLIBDIR) -Wl,-Bstatic -lvamp-sdk -lxtract -lfftw3f -Wl,-Bdynamic cannam@0: cannam@0: # Flags required to tell the compiler to make a dynamically loadable object cannam@0: # cannam@0: PLUGIN_LDFLAGS = -shared -Wl,-Bsymbolic -static-libgcc cannam@0: cannam@0: # File extension for a dynamically loadable object cannam@0: # cannam@0: PLUGIN_EXT = .so cannam@0: cannam@0: ## For OS/X with g++: cannam@0: #PLUGIN_LDFLAGS = -dynamiclib cannam@0: #PLUGIN_EXT = .dylib cannam@0: cannam@0: cannam@0: ### End of user-serviceable parts cannam@0: cannam@0: PLUGIN_OBJECTS = libmain.o $(patsubst %.cpp,%.o,$(wildcard $(PLUGINDIR)/*.cpp)) cannam@0: PLUGIN_HEADERS = $(patsubst %.cpp,%.h,$(wildcard $(PLUGINDIR)/*.cpp)) cannam@0: PLUGIN_TARGET = vamp-libxtract$(PLUGIN_EXT) cannam@0: cannam@0: all: $(PLUGIN_TARGET) cannam@0: cannam@0: $(PLUGIN_TARGET): $(PLUGIN_OBJECTS) $(PLUGIN_HEADERS) cannam@0: $(CXX) $(LDFLAGS) $(PLUGIN_LDFLAGS) -o $@ $(PLUGIN_OBJECTS) $(PLUGIN_LIBS) cannam@0: cannam@0: clean: cannam@0: rm -f $(PLUGIN_OBJECTS) cannam@0: cannam@0: distclean: clean cannam@0: rm -f $(PLUGIN_TARGET) *~ */*~ cannam@0: cannam@0: