Mercurial > hg > vamp-plugin-sdk
comparison build/README.osol @ 291:2e16d99867bd
* Tidying, build, versions, docs updates for release
author | cannam |
---|---|
date | Tue, 22 Sep 2009 10:02:56 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
290:c97e70ed5abc | 291:2e16d99867bd |
---|---|
1 | |
2 The Vamp Plugin SDK -- Platform Notes for OpenSolaris with SunStudio Compilers | |
3 ============================================================================== | |
4 | |
5 Building at the command line | |
6 ---------------------------- | |
7 | |
8 To build the SDK, example plugins, and command-line host using the | |
9 SunStudio C++ compiler (CC) with the Cstd standard library: | |
10 | |
11 $ make -f build/Makefile.osol | |
12 | |
13 You must have libsndfile (http://www.mega-nerd.com/libsndfile/) | |
14 installed in order to build the command-line host successfully. To | |
15 build only the SDK and examples: | |
16 | |
17 $ make -f build/Makefile.osol sdk examples | |
18 | |
19 See the comments at the top of Makefile.osol for more information about | |
20 the libraries and other targets that are built in this way. | |
21 | |
22 To install the libraries: | |
23 | |
24 $ make -f build/Makefile.osol install | |
25 | |
26 with the appropriate privileges (via pfexec or sudo). | |
27 | |
28 | |
29 Installing the Example Plugins | |
30 ------------------------------ | |
31 | |
32 To install the example plugins so you can load them in Vamp hosts, | |
33 copy the files | |
34 | |
35 examples/vamp-example-plugins.so | |
36 and | |
37 examples/vamp-example-plugins.cat | |
38 | |
39 to | |
40 /usr/local/lib/vamp/ | |
41 or | |
42 $HOME/vamp/ | |
43 | |
44 | |
45 Plugin Linkage | |
46 -------------- | |
47 | |
48 Vamp plugins are distributed as dynamic libraries (.so files). A | |
49 properly packaged Vamp plugin library should export exactly one public | |
50 symbol, namely the Vamp API entry point vampGetPluginDescriptor. | |
51 | |
52 The default for the Sun linker is to export all of the symbols in the | |
53 library. This will work (the host will be able to load the plugin), | |
54 but it unnecessarily pollutes the host's symbol namespace, it may | |
55 cause symbol collisions in some esoteric circumstances, and it | |
56 increases the amount of time the plugin takes to load. | |
57 | |
58 To improve this behaviour, you can instruct the linker to export only | |
59 the one required symbol using a linker script. To do this, place the | |
60 text | |
61 | |
62 { | |
63 global: vampGetPluginDescriptor; | |
64 local: *; | |
65 }; | |
66 | |
67 into a text file, and then use the -M mapfile option to the | |
68 linker to tell it to refer to this file. All other symbols will then | |
69 be properly hidden. | |
70 | |
71 The Makefile included in this SDK uses this method to manage symbol | |
72 visibility for the included example plugins, using the file | |
73 build/vamp-plugin.map. | |
74 | |
75 | |
76 Test Your Plugins | |
77 ----------------- | |
78 | |
79 The Vamp Plugin Tester is a vital utility which you can use to test | |
80 your plugins for common problems. It can help you if you're having | |
81 problems getting your plugin to work at all, and you're strongly | |
82 advised to use it before you release anything. Download it from the | |
83 Vamp plugins site now! | |
84 |