sudo apt-get install build-essential autoconf scons valgrind libtool git-core \ libboost-dev libboost-program-options-dev libboost-regex-dev libboost-filesystem-dev \ libgavl-dev libgdl-1-dev libgtkmm-2.4-dev librsvg2-dev libxv-dev
Currently, after building the application, you can try out the Lumiera GUI and you can run the test suite. This tutorial details the basic procedure to compile Lumiera on a Linux (or comparable) system. We’ll assume that the reader has acquired basic commandline survival skills and is able to figure out the usage of the Git version management system from the documentation (but we’ll mention each actually required command explicitly)
|
just compiling Lumieara on a Debian-based system (e.g. Ubuntu) is much simpler using the Debian source package. See the separate tutorial page for this (or the general instructions for installing on Debian/Ubuntu). The purpose of this tutorial here is to show you the elementary and generic steps to compile Lumiera from source. |
For building Lumiera, besides the GNU C/C++ compiler (Version 4.X), you will need:
NoBug (see below)
The GUI depends on:
|
Generally speaking, when you want to build software, you need the development version of the packages, containing the headers and pre-built libraries to link against. Usually, these packages are named -devel or -dev |
For Debian based systems, e.g. Ubuntu, you can install these dependencies with:
sudo apt-get install build-essential autoconf scons valgrind libtool git-core \ libboost-dev libboost-program-options-dev libboost-regex-dev libboost-filesystem-dev \ libgavl-dev libgdl-1-dev libgtkmm-2.4-dev librsvg2-dev libxv-dev
Optionally, you may also want to install the gtk2-engines package.
You need a directory for checking out the sources and running the build. This could be a temp directory, or some "workspace" directory below your home directory. We’ll call it workspace directory from now on.
Now that you have your basic build system setup, Lumiera needs a few more special support libraries. Currently you need to build those from source and install them, so the Lumiera build process can pick them up.
|
Note that the following procedures will try to install files into your base system below /usr/local. |
To do so, you’ll need administrative permissions for the machine you’re working on. These additions might interfere with other libraries installed by your package manager (if you get into trouble updating your system later on, sometimes you need to remove these manually built libraries).
NoBug is an instrumentation and diagnostics library.
Go into the mentioned workspace direcory (maybe create a new
directory). First, let’s get the NoBug source code:
git clone git://git.pipapo.org/nobug
This will create a (sub)directory called nobug with source code in your current
directory.
Compile NoBug with the following commands
cd nobug autoreconf -i mkdir build cd build ../configure make sudo make install
The GNOME Docking library is generally available through your package manager, but we contributed some improvements, which are only available in the very recent development versions of GDL. If your distribution provides a GDL >= 2.27, you’re fine. Otherwise we’ve created a special package, which doesn’t interfere with an existing (older) installation of GDL.
intltool-update is not patched, you must add /usr/share/intltool-debian/ to get the gdl-package to configure correctly (JSC).
you need to install the intltool package from the standard ubuntu repository
git clone git://git.lumiera.org/gdl-package cd gdl-package ./configure make sudo make install
For more detailed instructions on how to build GDL (also how to build it into a
Debian package) see
this message
on the Lumiera mailing list.
The compile will warn you to add various directories to /etc/ld.so.conf and then run ldconfig. This will allow your dynamic liker to pick up the newly built libraries later when you try to start Lumiera. If you don’t want to reconfigure your system and add /usr/local/lib to the mentioned linker configuration, you may alternatively just add the directories to your LD_LIBRARY_PATH environment variable.
Either way, check that all libraries are accessible and OK:
sudo ldconfig -v | grep 'nobug'
and you should get a list of the libraries, part of which should look like this:
libnobug.so.0 -> /usr/local/lib/libnobug.so.0.0.0
libnobugmt.so.0 -> /usr/local/lib/libnobugmt.so.0.0.0
libgdl-lum.so.0 -> /usr/local/lib/libgdl-lum.so.0.0.0
or similar. The same holds true for libgdl-lum.so.0 if you needed to build it explicitly for your system. If any if these libraries are not listed, investigate why before continuing.
Up to now, Lumiera has had two maintained (and equivalent) build systems: scons and autotools. (Note 3/2011: Right now, the autotools build is broken. It is always a good idea to check the current build stats from our builddrone, which automatically builds the latest version from master repository. Please have a look at this current build stats-page.)
Next, after having built and installed the prerequisite libraries, go into the workspace directory to retrieve the Lumiera source code and build it.
to retrieve the source code with git and then build with scons:
(see available build options by issuing scons -h )
git clone git://git.lumiera.org/LUMIERA cd LUMIERA scons
alternatively, if you prefer building with autotools (not working currently 3/11):
git clone git://git.lumiera.org/LUMIERA cd LUMIERA autoreconf -fi mkdir build cd build ../configure make
maybe build and run the test suite by issuing scons check or make check
This will take some time.
|
you do not need to install Lumiera. It will find its required files relative to the generated directory structure, which is freely relocatable as a whole. Just invoke the target/lumiera executable. The current working directory is not relevant. |
After the build has finished successfully, you should be able to start Lumiera. Currently, this will bring up the GUI, without any further functionality
You should see something like:
If you’re a coder, maybe you’ve found something to improve…?
Contributing to Lumiera is made easy, thanks to Git
→ Tutorial Contributing to Lumiera coding