2011-02-13 00:03:10 +01:00
|
|
|
Building Lumiera from source
|
|
|
|
|
============================
|
2011-02-13 00:09:08 +01:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
At the moment you can build Lumiera, start the standard Lumiera GUI and run the
|
|
|
|
|
Lumiera test suite.
|
|
|
|
|
|
|
|
|
|
This tutorial outlines the fundamental steps required to compile Lumiera on
|
|
|
|
|
Linux (or a comparable) system. We'll assume that you have a certain familiarity
|
|
|
|
|
with _commandline survival skills_ on your system. Although Git is required if
|
|
|
|
|
you do not use the Debian package, we'll explicitly provide all giot commands.
|
|
|
|
|
|
|
|
|
|
There are two distinct methods to build:
|
|
|
|
|
|
|
|
|
|
- use the Debian source code package of Lumiera
|
|
|
|
|
- use Git to retrieve all source code
|
|
|
|
|
|
2011-03-31 19:53:56 +02:00
|
|
|
|
|
|
|
|
NOTE: just compiling Lumieara on a _Debian-based_ system (e.g. Ubuntu)
|
|
|
|
|
is much simpler using the Debian source package. See the separate
|
|
|
|
|
link:DebianBuilding.html[tutorial page] for this (or the general
|
|
|
|
|
link:/debian/[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.
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
|
|
|
|
|
Requirements
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
To build Lumiera, you'll require GNU C/C++ compiler (Version 4.X) in addition to
|
|
|
|
|
the following:
|
2011-03-31 19:53:56 +02:00
|
|
|
|
|
|
|
|
* link:http://git-scm.com/[Git VCS]
|
|
|
|
|
* link:http://www.scons.org/[SCons build system]
|
|
|
|
|
* link:http://www.boost.org/[Boost libraries]
|
|
|
|
|
* link:http://gmerlin.sourceforge.net/[GAVL library]
|
2011-02-13 00:03:10 +01:00
|
|
|
* *NoBug* (see below)
|
2013-01-03 02:59:22 +01:00
|
|
|
* Lumiera source code
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
The GUI depends on the following:
|
2011-03-01 06:04:29 +01:00
|
|
|
|
|
|
|
|
* http://www.gtkmm.org/en/[gtkmm]
|
|
|
|
|
* http://cgit.freedesktop.org/xorg/lib/libXv[libXv]
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
TIP: Generally speaking, when you want to build software, you'll need the
|
|
|
|
|
_development_ version of the packages that contain the headers and pre-built
|
|
|
|
|
libraries to link against. These packages are ususally named `-devel` or `-dev`.
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
For Debian based systems, e.g. Ubuntu, you can install these packages as follows:
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2011-03-31 19:53:56 +02:00
|
|
|
-------------------------------------------------------------------------------------
|
2013-10-27 08:41:40 +01:00
|
|
|
sudo apt-get install build-essential scons git-core valgrind intltool \
|
2011-03-31 19:53:56 +02:00
|
|
|
libboost-dev libboost-program-options-dev libboost-regex-dev libboost-filesystem-dev \
|
2013-10-27 08:41:40 +01:00
|
|
|
libgavl-dev libgtkmm-2.4-dev librsvg2-dev libxv-dev
|
2011-03-31 19:53:56 +02:00
|
|
|
-------------------------------------------------------------------------------------
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2011-03-01 06:04:29 +01:00
|
|
|
Optionally, you may also want to install the *gtk2-engines* package.
|
|
|
|
|
|
2011-03-31 19:53:56 +02:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
Build Directory
|
2011-02-13 00:03:10 +01:00
|
|
|
---------------
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
You'll need to check out the source code in some directory or other. You'll also
|
|
|
|
|
have to use this directory to build Lumiera. This could be a temporary
|
|
|
|
|
directory, or some "workspace" directory below your home directory. We'll refer
|
|
|
|
|
to this directory as _workspace directory_ .
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
Lumiera Specific Libraries
|
2011-02-13 00:03:10 +01:00
|
|
|
--------------------------
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
Now that you have your basic build system setup, you'll next have obtain support
|
|
|
|
|
libraries required by Lumiera that are not directly part of the Lumiera project
|
|
|
|
|
itself. At the moment, you'll have to get the source code for the support
|
|
|
|
|
libraries at build them from source. We do not have them pre-packaged at the
|
|
|
|
|
moment, but this will hopefully change over time. However, it is not too
|
|
|
|
|
difficult to build the support libraries and the instructions following here
|
|
|
|
|
should not be too difficult.
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
WARNING: Note that the following procedures will try to install files into your
|
|
|
|
|
base system below `/usr/local`.
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
To do so, you'll need administrative permission for the machine you're working
|
2011-02-13 00:03:10 +01:00
|
|
|
on. These additions might interfere with other libraries installed by your
|
|
|
|
|
package manager (if you get into trouble updating your system later on,
|
2013-01-03 02:59:22 +01:00
|
|
|
you might have to manually remove these libraries).
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
NoBug: obtaining, building and installing
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
*NoBug* is an instrumentation and diagnostics library. +
|
2013-01-03 02:59:22 +01:00
|
|
|
Enter _workspace direcory_ as explained above.
|
|
|
|
|
Get the NoBug source code:
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
------------------------------------------------------------
|
2013-10-27 10:18:38 +01:00
|
|
|
git clone git://git.lumiera.org/debian/nobug
|
2011-02-13 00:03:10 +01:00
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
This will create a (sub)directory called nobug that contains source code. +
|
|
|
|
|
Compile and install NoBug with the following commands: (this will try to install
|
|
|
|
|
the NoBug library in /usr/lib, so you will require root privilages to do so!)
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
cd nobug
|
|
|
|
|
autoreconf -i
|
|
|
|
|
mkdir build
|
|
|
|
|
cd build
|
|
|
|
|
../configure
|
|
|
|
|
make
|
2011-03-07 03:58:54 +01:00
|
|
|
sudo make install
|
2011-02-13 00:03:10 +01:00
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
GDL: obtaining, building and installing
|
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
The *GNOME Docking library* is generally available through your package manager,
|
|
|
|
|
but we contributed some improvements, which are only available in the very
|
2011-03-31 19:53:56 +02:00
|
|
|
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.
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2011-03-07 03:58:54 +01:00
|
|
|
Ubuntu 9.04 note::
|
|
|
|
|
intltool-update is not patched, you must add +/usr/share/intltool-debian/+
|
|
|
|
|
to get the gdl-package to configure correctly (JSC).
|
|
|
|
|
Ubuntu 10.10 note::
|
|
|
|
|
you need to install the +intltool+ package from the standard ubuntu repository
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
------------------------------------------------------------
|
2013-10-27 10:18:38 +01:00
|
|
|
git clone git://git.lumiera.org/debian/gdl
|
|
|
|
|
cd gdl
|
2011-02-13 00:03:10 +01:00
|
|
|
./configure
|
|
|
|
|
make
|
|
|
|
|
sudo make install
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
For more detailed instructions on how to build GDL (also how to build it into a
|
|
|
|
|
Debian package) see
|
|
|
|
|
http://lists.lumiera.org/pipermail/lumiera/2009-April/000891.html[this message +
|
|
|
|
|
on the Lumiera mailing list].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
check library linkage
|
|
|
|
|
^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
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
|
2013-01-03 02:59:22 +01:00
|
|
|
your system and add `/usr/local/lib` to the linker configuration, you may
|
|
|
|
|
alternatively just add the directories to your LD_LIBRARY_PATH environment
|
2011-02-13 00:03:10 +01:00
|
|
|
variable.
|
|
|
|
|
|
|
|
|
|
Either way, check that all libraries are accessible and OK:
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------
|
2011-03-31 19:53:56 +02:00
|
|
|
sudo ldconfig -v | grep 'nobug'
|
2011-02-13 00:03:10 +01:00
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
or similar. The same applies to 'libgdl-lum.so.0' if you needed to build it
|
|
|
|
|
explicitly for your system. If any of these libraries are not listed, you'll
|
|
|
|
|
have to see why before you can continue.
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
Building Lumiera
|
2011-02-13 04:31:13 +01:00
|
|
|
----------------
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
Up to now, Lumiera has had (and equivalent) build systems: *scons* and
|
|
|
|
|
*autotools*. (Note 3/2011: At the moment, the autotools build system is
|
|
|
|
|
broken; only the scons build mechanism is working. It is always a good idea to
|
|
|
|
|
check the current build stats from our *builddrone*, which automatically builds
|
|
|
|
|
the latest version from the master repository. Please have a look at this
|
2011-03-09 12:04:58 +01:00
|
|
|
http://lumiera.org/builddrone/table.html[current build stats]-page.)
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
Next, after having built and installed the external libraries, go into the
|
|
|
|
|
_workspace directory_ and retrieve the Lumiera source code. Thereafter, build
|
|
|
|
|
Lumiera.
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
* Issue the following command to retireve the Lumiera source code and,
|
|
|
|
|
thereafter, build Lumiera using *scons*:
|
2011-02-13 00:03:10 +01:00
|
|
|
+
|
2013-01-03 02:59:22 +01:00
|
|
|
(more options for building with scons can be found via:`scons -h` )
|
2011-02-13 00:03:10 +01:00
|
|
|
+
|
|
|
|
|
-----------------
|
|
|
|
|
git clone git://git.lumiera.org/LUMIERA
|
|
|
|
|
cd LUMIERA
|
|
|
|
|
scons
|
|
|
|
|
-----------------
|
|
|
|
|
+
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
* Alternatively, if you'd prefer to build using *autotools* _(not working
|
|
|
|
|
currently 3/11)_, issue the following commands:
|
2011-02-13 00:03:10 +01:00
|
|
|
+
|
|
|
|
|
-----------------
|
|
|
|
|
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`
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
The build process will take some time, so sit back and relax.
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
NOTE: you do not need to _install_ Lumiera. It will find all files it requires
|
|
|
|
|
relative to the directory structure it generates, which is freely relocatable
|
2011-03-31 19:53:56 +02:00
|
|
|
as a whole. Just invoke the +target/lumiera+ executable. The current
|
2013-01-03 02:59:22 +01:00
|
|
|
working directory is not particularly relevant.
|
2011-02-13 00:03:10 +01:00
|
|
|
|
|
|
|
|
After the build has finished successfully, you should be able to start Lumiera.
|
|
|
|
|
Currently, this will bring up the GUI, without any further functionality
|
|
|
|
|
|
2013-01-03 02:59:22 +01:00
|
|
|
You should see something like this:
|
2011-02-13 00:03:10 +01:00
|
|
|
|
2011-03-10 01:10:38 +01:00
|
|
|
image:{l}/images/lumiera_gui_small.png[Current Lumiera GUI Screenshot]
|
2011-03-04 02:48:31 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
What's next?
|
|
|
|
|
------------
|
|
|
|
|
If you're a coder, maybe you've found something to improve...? +
|
2013-01-03 02:59:22 +01:00
|
|
|
Contributing to Lumiera is easy, thanks to *Git*
|
2011-03-04 02:48:31 +01:00
|
|
|
|
|
|
|
|
-> Tutorial link:contributing.html[Contributing to Lumiera coding]
|
|
|
|
|
|