Compiling Core Plugins

From LinuxMCE
Jump to: navigation, search

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

The Plugins

  • 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

The source

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:
svn co

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.