To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
root / build / README.linux
History | View | Annotate | Download (2.11 KB)
| 1 |
|
|---|---|
| 2 |
The Vamp Plugin SDK -- Platform Notes for Linux and other GNU platforms |
| 3 |
======================================================================= |
| 4 |
|
| 5 |
Building at the command line |
| 6 |
---------------------------- |
| 7 |
|
| 8 |
To build the SDK, example plugins, and command-line host: |
| 9 |
|
| 10 |
$ ./configure |
| 11 |
$ make |
| 12 |
|
| 13 |
To install after a successful make, run "make install" as root (or via |
| 14 |
sudo). |
| 15 |
|
| 16 |
|
| 17 |
Installing the Example Plugins |
| 18 |
------------------------------ |
| 19 |
|
| 20 |
To install the example plugins so you can load them in Vamp hosts, |
| 21 |
copy the files |
| 22 |
|
| 23 |
examples/vamp-example-plugins.so |
| 24 |
and |
| 25 |
examples/vamp-example-plugins.cat |
| 26 |
|
| 27 |
to |
| 28 |
/usr/local/lib/vamp/ |
| 29 |
or |
| 30 |
$HOME/vamp/ |
| 31 |
|
| 32 |
|
| 33 |
Plugin Linkage |
| 34 |
-------------- |
| 35 |
|
| 36 |
Vamp plugins are distributed as dynamic libraries (.so files). A |
| 37 |
properly packaged Vamp plugin library should export exactly one public |
| 38 |
symbol, namely the Vamp API entry point vampGetPluginDescriptor. |
| 39 |
|
| 40 |
The default for the GNU linker is to export all of the symbols in the |
| 41 |
library. This will work (the host will be able to load the plugin), |
| 42 |
but it unnecessarily pollutes the host's symbol namespace, it may |
| 43 |
cause symbol collisions in some esoteric circumstances, and it |
| 44 |
increases the amount of time the plugin takes to load. |
| 45 |
|
| 46 |
To improve this behaviour, you can instruct the linker to export only |
| 47 |
the one required symbol using a linker script. To do this, place the |
| 48 |
text |
| 49 |
|
| 50 |
{
|
| 51 |
global: vampGetPluginDescriptor; |
| 52 |
local: *; |
| 53 |
}; |
| 54 |
|
| 55 |
into a text file, and then use the --version-script option to the |
| 56 |
linker to tell it to refer to this file. All other symbols will then |
| 57 |
be properly hidden. |
| 58 |
|
| 59 |
The Makefile included in this SDK uses this method to manage symbol |
| 60 |
visibility for the included example plugins, using the file |
| 61 |
build/vamp-plugin.map. There are other methods that will work too, |
| 62 |
but this one is simple and has the advantage of requiring no changes |
| 63 |
to the code. |
| 64 |
|
| 65 |
|
| 66 |
Test Your Plugins |
| 67 |
----------------- |
| 68 |
|
| 69 |
The Vamp Plugin Tester is a vital utility which you can use to test |
| 70 |
your plugins for common problems. It can help you if you're having |
| 71 |
problems getting your plugin to work at all, and you're strongly |
| 72 |
advised to use it before you release anything. Download it from the |
| 73 |
Vamp plugins site now! |
| 74 |
|