diff build/README.osx @ 239:cc467e52da4c

* Add platform README files
author cannam
date Mon, 10 Nov 2008 12:39:19 +0000
parents
children e02c93c4de8f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/build/README.osx	Mon Nov 10 12:39:19 2008 +0000
@@ -0,0 +1,67 @@
+
+The Vamp Plugin SDK -- Platform Notes for OS/X
+==============================================
+
+Building at the command line
+----------------------------
+
+To build the SDK, example plugins, and command-line host:
+
+ $ make -f Makefile.osx
+
+Note that you must have libsndfile
+(http://www.mega-nerd.com/libsndfile/) installed in order to build the
+command-line host successfully.  To build only the SDK and examples:
+
+ $ make -f Makefile.osx sdk examples
+
+If you are using an IDE, you may prefer to simply add the .h and .cpp
+files in the vamp-sdk and/or vamp-hostsdk directories to your existing
+project.
+
+
+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).  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.
+