cannam@0: cannam@0: # Location of our plugins cannam@0: # cannam@0: PLUGINDIR = plugins cannam@0: Chris@22: # Location of LibXtract Chris@22: # Chris@22: LIBXTRACTDIR = LibXtract Chris@22: cannam@0: # Compile flags cannam@0: # Chris@34: CFLAGS := $(CFLAGS) -DXTRACT_FFT=1 -DUSE_OOURA=1 -DNDEBUG -O3 -ffast-math -Wall -fPIC -I. -I$(LIBXTRACTDIR) Chris@38: CXXFLAGS := $(CXXFLAGS) $(CFLAGS) cannam@8: cannam@16: # Libraries required for the plugins. cannam@0: # Chris@22: PLUGIN_LIBS = -Wl,-Bstatic -lvamp-sdk -lfftw3f -Wl,-Bdynamic cannam@0: cannam@0: # Flags required to tell the compiler to make a dynamically loadable object cannam@0: # Chris@38: PLUGIN_LDFLAGS = $(LDFLAGS) -shared -Wl,-Bsymbolic -Wl,--version-script=vamp-plugin.map 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@16: #PLUGIN_LDFLAGS = -dynamiclib -exported_symbols_list=vamp-plugin.list 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)) Chris@34: XTRACT_OBJECTS = $(patsubst %.c,%.o,$(wildcard $(LIBXTRACTDIR)/src/*.c $(LIBXTRACTDIR)/src/*/*.c)) 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: Chris@22: $(PLUGIN_TARGET): $(PLUGIN_OBJECTS) $(XTRACT_OBJECTS) $(PLUGIN_HEADERS) Chris@22: $(CXX) $(LDFLAGS) $(PLUGIN_LDFLAGS) -o $@ $(PLUGIN_OBJECTS) $(XTRACT_OBJECTS) $(PLUGIN_LIBS) cannam@0: cannam@0: clean: Chris@22: rm -f $(PLUGIN_OBJECTS) $(XTRACT_OBJECTS) cannam@0: cannam@0: distclean: clean cannam@0: rm -f $(PLUGIN_TARGET) *~ */*~ cannam@0: cannam@0: