Compiling Core Plugins
This is development entry explaining the how-to behind compiling linuxMCE standard plugins. These plugins represent different functionality that communicates with the core and other devices. The significance of plugins is that they run in the DCERouter memory space, so a non functioning one can cause serious stability issues.
It should be noted that a familiarity with svn and command line compiling arguments is quite helpful in this process.
Note: This document is relevant for:
- LinuxMCE 810
- LinuxMCE 1004
- File Grids Plugin
- General info Plugin
- Climate Plugin
- Datagrid Plugin
- Infrared Plugin
- Lighting Plugin
- Orbiter Plugin
- Media Plugin
- Telecom Plugin
- Event Plugin
- Security Plugin
- Plug and Play Plugin
- Xine Plugin
- MythTV Plugin
- Game Plugin
What you Need
To get started on this process, you will need to perform some initial preperation steps.
Required Packages and Libraries
You will also need to install the build-essential package
sudo apt-get install pluto-dcegen pluto-sql2cpp subversion build-essential libmysqld-dev libattr1-dev
You will also need the DCE library objects. To obtain these, copy them from /usr/pluto/lib/ to the lib directory in your source tree like in the example below:
cp /usr/pluto/lib/* /mysvncheckoutdir/src/lib
Checkout the source code via subversion. This will download the most recent code. While that may sound intimidating, its quite simple actually.
- Perform the subversion checkout of the source tree. In this case, this would be the /src directory on the svn server. To do this you enter:
- Make a new directory you can download the checkout into. Make sure its an empty directory! In this example, from the root we make a directory /src.
- CD into newly created directory
- Enter the following:
Building the Plugins
Find the directory of the plugin in question.
- You can then type 'make so' or if not admin 'sudo make so'
- NOTE* needs more detail
This should provide the shared library objects for the plugin. Now you will need to stop the running plugin that correlates to the one you just built, and then copy it into place.
And now you have completed the task of building a plugin from the source!
You can then copy the plugin into /usr/pluto/bin, and reload the router.