cannam@0: cannam@0: # Location of our plugins cannam@0: # cannam@0: PLUGINDIR = plugins cannam@0: cannam@41: # Location of aubio code cannam@41: # cannam@41: AUBIODIR = aubio cannam@41: cannam@0: # Compile flags cannam@0: # cannam@43: CFLAGS := -I. -Iaubio/src $(CFLAGS) -fPIC -DDEBUG -O2 -Wall -I. cannam@41: CXXFLAGS := $(CFLAGS) cannam@0: cannam@35: # Libraries required for the plugins. cannam@0: # cannam@47: PLUGIN_LIBS = -Wl,-Bstatic -lvamp-sdk -Wl,-Bdynamic cannam@0: cannam@0: # Flags required to tell the compiler to make a dynamically loadable object cannam@0: # cannam@35: PLUGIN_LDFLAGS = -shared -Wl,-Bsymbolic -Wl,--version-script=vamp-plugin.map cannam@0: cannam@0: # File extension for a dynamically loadable object cannam@0: # cannam@35: PLUGIN_EXT = .so cannam@0: cannam@0: ## For OS/X with g++: cannam@35: #PLUGIN_LDFLAGS = -dynamiclib -exported_symbols_list=vamp-plugin.list cannam@35: #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@41: AUBIO_OBJECTS = $(patsubst %.c,%.o,$(wildcard $(AUBIODIR)/src/*.c $(AUBIODIR)/src/*/*.c )) cannam@0: PLUGIN_HEADERS = $(patsubst %.cpp,%.h,$(wildcard $(PLUGINDIR)/*.cpp)) cannam@0: PLUGIN_TARGET = vamp-aubio$(PLUGIN_EXT) cannam@0: cannam@0: all: $(PLUGIN_TARGET) cannam@0: cannam@41: $(PLUGIN_TARGET): $(PLUGIN_OBJECTS) $(AUBIO_OBJECTS) $(PLUGIN_HEADERS) cannam@41: $(CXX) $(LDFLAGS) $(PLUGIN_LDFLAGS) -o $@ $(PLUGIN_OBJECTS) $(AUBIO_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: