Mercurial > hg > sv-dependency-builds
diff src/vamp-plugin-sdk-2.5/build/README.osx @ 23:619f715526df sv_v2.1
Update Vamp plugin SDK to 2.5
author | Chris Cannam |
---|---|
date | Thu, 09 May 2013 10:52:46 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/vamp-plugin-sdk-2.5/build/README.osx Thu May 09 10:52:46 2013 +0100 @@ -0,0 +1,101 @@ + +The Vamp Plugin SDK -- Platform Notes for OS/X +============================================== + +Prerequisites +------------- + +You must have Xcode installed, with the command-line build tools. + +(If you are using Xcode 4, you may have to go to Preferences -> +Downloads -> Components and install the Command Line Tools component.) + +You must have libsndfile (http://www.mega-nerd.com/libsndfile/) +installed in order to build the command-line host successfully. But +you do not need libsndfile if you only want to build plugins. + + +Building at the command line +---------------------------- + +To build the SDK, example plugins, and command-line host: + + $ make -f build/Makefile.osx + +To build only the SDK and example plugins (for example if you do not +have libsndfile installed): + + $ make -f build/Makefile.osx sdk examples + +See the comments at the top of Makefile.osx for more information about +the libraries and other targets that are built in this way. + +If you are using an IDE such as Xcode, you may prefer to simply add +the vamp-sdk and src/vamp-sdk (for plugins) or vamp-hostsdk and +src/vamp-hostsdk (for hosts) directories to your existing project. + +If you are using OS/X 10.6 or older, use Makefile.osx.106 instead of +Makefile.osx. + + +Installing the Example Plugins +------------------------------ + +To install the example plugins so you can load them in Vamp hosts, +copy the files + + examples/vamp-example-plugins.dylib +and + examples/vamp-example-plugins.cat + +to + /Library/Audio/Plug-Ins/Vamp/ +or + $HOME/Library/Audio/Plug-Ins/Vamp/ + + +Plugin Linkage +-------------- + +Vamp plugins are distributed as dynamic libraries (.dylib). An OS/X +dynamic library has a formal installed name, which is recorded in the +library's header: you will need to ensure that this matches the +plugin's filename (e.g. vamp-example-plugins.dylib) by using the +-install_name <name> option at link time. The Makefile.osx provided +with the SDK contains an example of this. + +A well-packaged Vamp plugin library should export exactly one public +symbol, namely the Vamp API entry point vampGetPluginDescriptor. + +The default for the OS/X linker is to export all of the symbols in the +library. This will work (the host will be able to load the plugin), +but it unnecessarily pollutes the host's symbol namespace, it may +cause symbol collisions in some esoteric circumstances, and it +increases the amount of time the plugin takes to load. + +To improve this behaviour, you can instruct the linker to export only +the one required symbol using a symbols list file. To do this, place +the single line + +_vampGetPluginDescriptor + +(with leading underscore) into a text file, and then use the +-exported_symbols_list option to the linker to tell it to refer to +this file. All other symbols will then be properly hidden. + +The Makefile.osx included in this SDK uses this method to manage +symbol visibility for the included example plugins, using the file +build/vamp-plugin.list. There are other methods that will work too, +but this one is simple and has the advantage of requiring no changes +to the code. + + +Test Your Plugins +----------------- + +The Vamp Plugin Tester is a vital utility which you can use to test +your plugins for common problems. It can help you if you're having +problems getting your plugin to work at all, and you're strongly +advised to use it before you release anything. Download it from the +Vamp plugins site now! +