Mercurial > hg > vamp-plugin-sdk
view build/Makefile.osx @ 330:dba435f9b283
PLUGIN is not defined aat the point where it was needed for LDFLAGS -- replace with an explicit $(PLUGIN_LIBRARY_NAME)$(PLUGIN_EXT)
author | Chris Cannam |
---|---|
date | Fri, 02 Dec 2011 11:31:00 +0000 |
parents | b570254e70a0 |
children | c70e1ceb1eff |
line wrap: on
line source
# Makefile for the Vamp plugin SDK. This builds the SDK objects, # libraries, example plugins, and the test host. Please adjust to # suit your operating system requirements. # # This version of the Makefile is approximately correct for OS/X. # Note that it has no "install" target; the following are the # library and related files that may be of interest resulting from # the build: # # libvamp-sdk.dylib [SDK dynamic library for plugins] # libvamp-hostsdk.dylib [SDK dynamic library for hosts] # # libvamp-sdk.a [SDK static library for plugins] # libvamp-hostsdk.a [SDK static library for hosts] # # examples/vamp-example-plugins.cat [copy this to your Vamp plugin dir] # examples/vamp-example-plugins.dylib [copy this to your Vamp plugin dir] # # host/vamp-simple-host [requires libsndfile to build] # # rdf/generator/vamp-rdf-template-generator # Makefile for the Vamp plugin SDK. This builds the SDK objects, # libraries, example plugins, and the test host. Please adjust to # suit your operating system requirements. APIDIR = vamp SDKDIR = vamp-sdk HOSTSDKDIR = vamp-hostsdk SRCDIR = src SDKSRCDIR = src/vamp-sdk HOSTSDKSRCDIR = src/vamp-hostsdk EXAMPLEDIR = examples HOSTDIR = host PCDIR = pkgconfig LADIR = build RDFGENDIR = rdf/generator ### ### Start of user-serviceable parts ### # Default build target (or use "make <target>" to select one). # Targets are: # all -- build everything # sdk -- build all the Vamp SDK libraries for plugins and hosts # sdkstatic -- build only the static versions of the SDK libraries # plugins -- build the example plugins (and the SDK if required) # host -- build the simple Vamp plugin host (and the SDK if required) # rdfgen -- build the RDF template generator (and the SDK if required) # test -- build the host and example plugins, and run a quick test # clean -- remove binary targets # distclean -- remove all targets # default: all # Architecture and developer SDK selection flags. Change these only # if you want to select a different OS/X compatibility level from the # default. # # By default, we try to find the oldest available SDK that is newer # than 10.4. # # If you want to override this to select a particular SDK, change # PREFERRED_SDK to the SDK name (e.g. "10.4u") and PREFERRED_MINVERSION # to the minimum OS revision (e.g. "10.4"). An example follows this code. # SDKPREFIX := /Developer/SDKs/MacOSX SDKS := $(wildcard $(SDKPREFIX)*.sdk) SDKVERSIONS := $(patsubst $(SDKPREFIX)%.sdk,%,$(SDKS)) GOOD_SDKS := $(filter-out 10.1%,$(filter-out 10.2%,$(filter-out 10.3%,$(filter-out 10.4%,$(SDKVERSIONS))))) # PREFERRED_SDK := $(word 1, $(sort $(GOOD_SDKS))) PREFERRED_MINVERSION := $(patsubst %u,%,$(PREFERRED_SDK)) # # Example: to set your own values, uncomment and adjust: # PREFERRED_SDK := 10.4u # PREFERRED_MINVERSION := 10.4 SDKFLAGS = -isysroot /Developer/SDKs/MacOSX$(PREFERRED_SDK).sdk -mmacosx-version-min=$(PREFERRED_MINVERSION) # Our default is to try to build for all available architectures in a # universal binary. # ARCHFLAGS = $(SDKFLAGS) -arch i386 -arch x86_64 -arch ppc # Compile flags # CXXFLAGS = $(ARCHFLAGS) -O2 -Wall -I. -fPIC # Link flags common to all link targets # LDFLAGS = $(ARCHFLAGS) # ar, ranlib # AR = ar RANLIB = ranlib RM_F = rm -f # Libraries required for the plugins. # PLUGIN_LIBS = ./libvamp-sdk.a # File extension for a dynamically loadable object # PLUGIN_EXT = .dylib # Libraries required for the host. # HOST_LIBS = ./libvamp-hostsdk.a -lsndfile -ldl # Libraries required for the RDF template generator. # RDFGEN_LIBS = ./libvamp-hostsdk.a -ldl # Flags required to tell the compiler to create a dynamically loadable object # DYNAMIC_LDFLAGS = $(ARCHFLAGS) -dynamiclib # Flags for building specific plugin and library targets. We need to # tell the linker the formal name for the library, and for plugins we # also want to tell the linker to make all symbols in the library # hidden except for the public entry point (making for a tidier library). # PLUGIN_LDFLAGS = $(DYNAMIC_LDFLAGS) \ -install_name vamp-example-plugins.dylib \ -exported_symbols_list build/vamp-plugin.list SDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) -install_name libvamp-sdk.dylib HOSTSDK_DYNAMIC_LDFLAGS = $(DYNAMIC_LDFLAGS) -install_name libvamp-hostsdk.dylib ### End of user-serviceable parts API_HEADERS = \ $(APIDIR)/vamp.h SDK_HEADERS = \ $(SDKDIR)/Plugin.h \ $(SDKDIR)/PluginAdapter.h \ $(SDKDIR)/PluginBase.h \ $(SDKDIR)/RealTime.h \ $(SDKDIR)/plugguard.h \ $(SDKDIR)/vamp-sdk.h HOSTSDK_HEADERS = \ $(HOSTSDKDIR)/Plugin.h \ $(HOSTSDKDIR)/PluginBase.h \ $(HOSTSDKDIR)/PluginHostAdapter.h \ $(HOSTSDKDIR)/RealTime.h \ $(HOSTSDKDIR)/PluginBufferingAdapter.h \ $(HOSTSDKDIR)/PluginChannelAdapter.h \ $(HOSTSDKDIR)/PluginInputDomainAdapter.h \ $(HOSTSDKDIR)/PluginLoader.h \ $(HOSTSDKDIR)/PluginSummarisingAdapter.h \ $(HOSTSDKDIR)/PluginWrapper.h \ $(HOSTSDKDIR)/hostguard.h \ $(HOSTSDKDIR)/vamp-hostsdk.h SDK_OBJECTS = \ $(SDKSRCDIR)/PluginAdapter.o \ $(SDKSRCDIR)/RealTime.o HOSTSDK_OBJECTS = \ $(HOSTSDKSRCDIR)/PluginHostAdapter.o \ $(HOSTSDKSRCDIR)/RealTime.o \ $(HOSTSDKSRCDIR)/PluginBufferingAdapter.o \ $(HOSTSDKSRCDIR)/PluginChannelAdapter.o \ $(HOSTSDKSRCDIR)/PluginInputDomainAdapter.o \ $(HOSTSDKSRCDIR)/PluginLoader.o \ $(HOSTSDKSRCDIR)/PluginSummarisingAdapter.o \ $(HOSTSDKSRCDIR)/PluginWrapper.o SDK_STATIC = \ ./libvamp-sdk.a HOSTSDK_STATIC = \ ./libvamp-hostsdk.a SDK_DYNAMIC = \ ./libvamp-sdk$(PLUGIN_EXT) HOSTSDK_DYNAMIC = \ ./libvamp-hostsdk$(PLUGIN_EXT) SDK_LA = \ $(LADIR)/libvamp-sdk.la HOSTSDK_LA = \ $(LADIR)/libvamp-hostsdk.la PLUGIN_HEADERS = \ $(EXAMPLEDIR)/SpectralCentroid.h \ $(EXAMPLEDIR)/PowerSpectrum.h \ $(EXAMPLEDIR)/PercussionOnsetDetector.h \ $(EXAMPLEDIR)/FixedTempoEstimator.h \ $(EXAMPLEDIR)/AmplitudeFollower.h \ $(EXAMPLEDIR)/ZeroCrossing.h PLUGIN_OBJECTS = \ $(EXAMPLEDIR)/SpectralCentroid.o \ $(EXAMPLEDIR)/PowerSpectrum.o \ $(EXAMPLEDIR)/PercussionOnsetDetector.o \ $(EXAMPLEDIR)/FixedTempoEstimator.o \ $(EXAMPLEDIR)/AmplitudeFollower.o \ $(EXAMPLEDIR)/ZeroCrossing.o \ $(EXAMPLEDIR)/plugins.o PLUGIN_TARGET = \ $(EXAMPLEDIR)/vamp-example-plugins$(PLUGIN_EXT) HOST_HEADERS = \ $(HOSTDIR)/system.h HOST_OBJECTS = \ $(HOSTDIR)/vamp-simple-host.o HOST_TARGET = \ $(HOSTDIR)/vamp-simple-host RDFGEN_OBJECTS = \ $(RDFGENDIR)/vamp-rdf-template-generator.o RDFGEN_TARGET = \ $(RDFGENDIR)/vamp-rdf-template-generator show: @echo " *** Found available SDK versions: $(SDKVERSIONS)" @test -n "$(PREFERRED_SDK)" || ( echo "Error: Failed to establish preferred SDK version, please ensure at least one Developer SDK is installed" ; exit 1 ) @test -n "$(PREFERRED_MINVERSION)" || ( echo "Error: Failed to establish preferred minimum OS version" ; exit 1 ) @echo " *** Default SDK is $(PREFERRED_SDK) for minimum OS/X version $(PREFERRED_MINVERSION)" sdk: show sdkstatic $(SDK_DYNAMIC) $(HOSTSDK_DYNAMIC) sdkstatic: $(SDK_STATIC) $(HOSTSDK_STATIC) $(RANLIB) $(SDK_STATIC) $(RANLIB) $(HOSTSDK_STATIC) plugins: $(PLUGIN_TARGET) host: $(HOST_TARGET) rdfgen: $(RDFGEN_TARGET) all: sdk plugins host rdfgen test $(SDK_STATIC): $(SDK_OBJECTS) $(API_HEADERS) $(SDK_HEADERS) $(RM_F) $@ $(AR) r $@ $(SDK_OBJECTS) $(HOSTSDK_STATIC): $(HOSTSDK_OBJECTS) $(API_HEADERS) $(HOSTSDK_HEADERS) $(RM_F) $@ $(AR) r $@ $(HOSTSDK_OBJECTS) $(SDK_DYNAMIC): $(SDK_OBJECTS) $(API_HEADERS) $(SDK_HEADERS) $(CXX) $(LDFLAGS) $(SDK_DYNAMIC_LDFLAGS) -o $@ $(SDK_OBJECTS) $(HOSTSDK_DYNAMIC): $(HOSTSDK_OBJECTS) $(API_HEADERS) $(HOSTSDK_HEADERS) $(CXX) $(LDFLAGS) $(HOSTSDK_DYNAMIC_LDFLAGS) -o $@ $(HOSTSDK_OBJECTS) $(PLUGIN_TARGET): $(PLUGIN_OBJECTS) $(SDK_STATIC) $(PLUGIN_HEADERS) $(CXX) $(LDFLAGS) $(PLUGIN_LDFLAGS) -o $@ $(PLUGIN_OBJECTS) $(PLUGIN_LIBS) $(HOST_TARGET): $(HOST_OBJECTS) $(HOSTSDK_STATIC) $(HOST_HEADERS) $(CXX) $(LDFLAGS) $(HOST_LDFLAGS) -o $@ $(HOST_OBJECTS) $(HOST_LIBS) $(RDFGEN_TARGET): $(RDFGEN_OBJECTS) $(HOSTSDK_STATIC) $(CXX) $(LDFLAGS) $(RDFGEN_LDFLAGS) -o $@ $(RDFGEN_OBJECTS) $(RDFGEN_LIBS) test: plugins host VAMP_PATH=$(EXAMPLEDIR) $(HOST_TARGET) -l clean: rm -f $(SDK_OBJECTS) $(HOSTSDK_OBJECTS) $(PLUGIN_OBJECTS) $(HOST_OBJECTS) $(RDFGEN_OBJECTS) distclean: clean rm -f $(SDK_STATIC) $(SDK_DYNAMIC) $(HOSTSDK_STATIC) $(HOSTSDK_DYNAMIC) $(PLUGIN_TARGET) $(HOST_TARGET) $(RDFGEN_TARGET) *~ */*~ # DO NOT DELETE examples/AmplitudeFollower.o: examples/AmplitudeFollower.h vamp-sdk/Plugin.h examples/AmplitudeFollower.o: vamp-sdk/PluginBase.h vamp-sdk/plugguard.h examples/AmplitudeFollower.o: vamp-sdk/RealTime.h examples/FixedTempoEstimator.o: examples/FixedTempoEstimator.h examples/FixedTempoEstimator.o: vamp-sdk/Plugin.h vamp-sdk/PluginBase.h examples/FixedTempoEstimator.o: vamp-sdk/plugguard.h vamp-sdk/RealTime.h examples/PercussionOnsetDetector.o: examples/PercussionOnsetDetector.h examples/PercussionOnsetDetector.o: vamp-sdk/Plugin.h vamp-sdk/PluginBase.h examples/PercussionOnsetDetector.o: vamp-sdk/plugguard.h vamp-sdk/RealTime.h examples/SpectralCentroid.o: examples/SpectralCentroid.h vamp-sdk/Plugin.h examples/SpectralCentroid.o: vamp-sdk/PluginBase.h vamp-sdk/plugguard.h examples/SpectralCentroid.o: vamp-sdk/RealTime.h examples/PowerSpectrum.o: examples/PowerSpectrum.h vamp-sdk/Plugin.h examples/PowerSpectrum.o: vamp-sdk/PluginBase.h vamp-sdk/plugguard.h examples/PowerSpectrum.o: vamp-sdk/RealTime.h examples/ZeroCrossing.o: examples/ZeroCrossing.h vamp-sdk/Plugin.h examples/ZeroCrossing.o: vamp-sdk/PluginBase.h vamp-sdk/plugguard.h examples/ZeroCrossing.o: vamp-sdk/RealTime.h examples/plugins.o: vamp/vamp.h vamp-sdk/PluginAdapter.h vamp-sdk/Plugin.h examples/plugins.o: vamp-sdk/PluginBase.h vamp-sdk/plugguard.h examples/plugins.o: vamp-sdk/RealTime.h examples/ZeroCrossing.h examples/plugins.o: vamp-sdk/Plugin.h examples/SpectralCentroid.h examples/plugins.o: examples/PercussionOnsetDetector.h examples/PowerSpectrum.h examples/plugins.o: examples/FixedTempoEstimator.h examples/plugins.o: examples/AmplitudeFollower.h host/vamp-simple-host.o: ./vamp-hostsdk/PluginHostAdapter.h vamp/vamp.h host/vamp-simple-host.o: vamp-sdk/Plugin.h vamp-sdk/PluginBase.h host/vamp-simple-host.o: vamp-sdk/plugguard.h vamp-sdk/RealTime.h host/vamp-simple-host.o: ./vamp-hostsdk/PluginInputDomainAdapter.h host/vamp-simple-host.o: ./vamp-hostsdk/PluginWrapper.h host/vamp-simple-host.o: ./vamp-hostsdk/Plugin.h ./vamp-hostsdk/hostguard.h host/vamp-simple-host.o: vamp-sdk/Plugin.h host/vamp-simple-host.o: ./vamp-hostsdk/PluginLoader.h host/system.h rdf/generator/vamp-rdf-template-generator.o: ./vamp-hostsdk/PluginHostAdapter.h rdf/generator/vamp-rdf-template-generator.o: vamp/vamp.h vamp-sdk/Plugin.h rdf/generator/vamp-rdf-template-generator.o: vamp-sdk/PluginBase.h rdf/generator/vamp-rdf-template-generator.o: vamp-sdk/plugguard.h vamp-sdk/RealTime.h rdf/generator/vamp-rdf-template-generator.o: ./vamp-hostsdk/PluginChannelAdapter.h rdf/generator/vamp-rdf-template-generator.o: ./vamp-hostsdk/PluginWrapper.h rdf/generator/vamp-rdf-template-generator.o: ./vamp-hostsdk/Plugin.h rdf/generator/vamp-rdf-template-generator.o: ./vamp-hostsdk/hostguard.h rdf/generator/vamp-rdf-template-generator.o: vamp-sdk/Plugin.h rdf/generator/vamp-rdf-template-generator.o: ./vamp-hostsdk/PluginInputDomainAdapter.h rdf/generator/vamp-rdf-template-generator.o: ./vamp-hostsdk/PluginLoader.h src/vamp-hostsdk/PluginHostAdapter.o: ./vamp-hostsdk/PluginHostAdapter.h src/vamp-hostsdk/PluginHostAdapter.o: vamp/vamp.h vamp-sdk/Plugin.h src/vamp-hostsdk/PluginHostAdapter.o: vamp-sdk/PluginBase.h src/vamp-hostsdk/PluginHostAdapter.o: vamp-sdk/plugguard.h src/vamp-hostsdk/PluginHostAdapter.o: vamp-sdk/RealTime.h src/vamp-hostsdk/RealTime.o: src/vamp-sdk/RealTime.cpp ./vamp-sdk/RealTime.h src/vamp-hostsdk/RealTime.o: vamp-sdk/plugguard.h src/vamp-sdk/PluginAdapter.o: vamp-sdk/PluginAdapter.h vamp/vamp.h src/vamp-sdk/PluginAdapter.o: vamp-sdk/Plugin.h vamp-sdk/PluginBase.h src/vamp-sdk/PluginAdapter.o: vamp-sdk/plugguard.h vamp-sdk/RealTime.h src/vamp-sdk/RealTime.o: ./vamp-sdk/RealTime.h vamp-sdk/plugguard.h src/vamp-hostsdk/PluginBufferingAdapter.o: ./vamp-hostsdk/PluginBufferingAdapter.h src/vamp-hostsdk/PluginBufferingAdapter.o: ./vamp-hostsdk/PluginWrapper.h src/vamp-hostsdk/PluginBufferingAdapter.o: ./vamp-hostsdk/Plugin.h src/vamp-hostsdk/PluginBufferingAdapter.o: ./vamp-hostsdk/hostguard.h src/vamp-hostsdk/PluginBufferingAdapter.o: vamp-sdk/Plugin.h src/vamp-hostsdk/PluginBufferingAdapter.o: vamp-sdk/PluginBase.h src/vamp-hostsdk/PluginBufferingAdapter.o: vamp-sdk/plugguard.h src/vamp-hostsdk/PluginBufferingAdapter.o: vamp-sdk/RealTime.h src/vamp-hostsdk/PluginChannelAdapter.o: ./vamp-hostsdk/PluginChannelAdapter.h src/vamp-hostsdk/PluginChannelAdapter.o: ./vamp-hostsdk/PluginWrapper.h src/vamp-hostsdk/PluginChannelAdapter.o: ./vamp-hostsdk/Plugin.h src/vamp-hostsdk/PluginChannelAdapter.o: ./vamp-hostsdk/hostguard.h src/vamp-hostsdk/PluginChannelAdapter.o: vamp-sdk/Plugin.h src/vamp-hostsdk/PluginChannelAdapter.o: vamp-sdk/PluginBase.h src/vamp-hostsdk/PluginChannelAdapter.o: vamp-sdk/plugguard.h src/vamp-hostsdk/PluginChannelAdapter.o: vamp-sdk/RealTime.h src/vamp-hostsdk/PluginInputDomainAdapter.o: ./vamp-hostsdk/PluginInputDomainAdapter.h src/vamp-hostsdk/PluginInputDomainAdapter.o: ./vamp-hostsdk/PluginWrapper.h src/vamp-hostsdk/PluginInputDomainAdapter.o: ./vamp-hostsdk/Plugin.h src/vamp-hostsdk/PluginInputDomainAdapter.o: ./vamp-hostsdk/hostguard.h src/vamp-hostsdk/PluginInputDomainAdapter.o: vamp-sdk/Plugin.h src/vamp-hostsdk/PluginInputDomainAdapter.o: vamp-sdk/PluginBase.h src/vamp-hostsdk/PluginInputDomainAdapter.o: vamp-sdk/plugguard.h src/vamp-hostsdk/PluginInputDomainAdapter.o: vamp-sdk/RealTime.h src/vamp-hostsdk/PluginLoader.o: ./vamp-hostsdk/PluginHostAdapter.h src/vamp-hostsdk/PluginLoader.o: vamp/vamp.h vamp-sdk/Plugin.h src/vamp-hostsdk/PluginLoader.o: vamp-sdk/PluginBase.h src/vamp-hostsdk/PluginLoader.o: vamp-sdk/plugguard.h src/vamp-hostsdk/PluginLoader.o: vamp-sdk/RealTime.h src/vamp-hostsdk/PluginLoader.o: ./vamp-hostsdk/PluginLoader.h src/vamp-hostsdk/PluginLoader.o: ./vamp-hostsdk/PluginWrapper.h src/vamp-hostsdk/PluginLoader.o: ./vamp-hostsdk/Plugin.h src/vamp-hostsdk/PluginLoader.o: ./vamp-hostsdk/hostguard.h src/vamp-hostsdk/PluginLoader.o: vamp-sdk/Plugin.h src/vamp-hostsdk/PluginLoader.o: ./vamp-hostsdk/PluginInputDomainAdapter.h src/vamp-hostsdk/PluginLoader.o: ./vamp-hostsdk/PluginChannelAdapter.h src/vamp-hostsdk/PluginLoader.o: ./vamp-hostsdk/PluginBufferingAdapter.h src/vamp-hostsdk/PluginSummarisingAdapter.o: ./vamp-hostsdk/PluginSummarisingAdapter.h src/vamp-hostsdk/PluginSummarisingAdapter.o: ./vamp-hostsdk/PluginWrapper.h src/vamp-hostsdk/PluginSummarisingAdapter.o: ./vamp-hostsdk/Plugin.h src/vamp-hostsdk/PluginSummarisingAdapter.o: ./vamp-hostsdk/hostguard.h src/vamp-hostsdk/PluginSummarisingAdapter.o: vamp-sdk/Plugin.h src/vamp-hostsdk/PluginSummarisingAdapter.o: vamp-sdk/PluginBase.h src/vamp-hostsdk/PluginSummarisingAdapter.o: vamp-sdk/plugguard.h src/vamp-hostsdk/PluginSummarisingAdapter.o: vamp-sdk/RealTime.h src/vamp-hostsdk/PluginWrapper.o: ./vamp-hostsdk/PluginWrapper.h src/vamp-hostsdk/PluginWrapper.o: ./vamp-hostsdk/Plugin.h src/vamp-hostsdk/PluginWrapper.o: ./vamp-hostsdk/hostguard.h src/vamp-hostsdk/PluginWrapper.o: vamp-sdk/Plugin.h src/vamp-hostsdk/PluginWrapper.o: vamp-sdk/PluginBase.h src/vamp-hostsdk/PluginWrapper.o: vamp-sdk/plugguard.h src/vamp-hostsdk/PluginWrapper.o: vamp-sdk/RealTime.h