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