2008-06-26 05:02:58 -04:00
|
|
|
<part id="building-clutter">
|
|
|
|
<partinfo>
|
|
|
|
<author>
|
|
|
|
<firstname>Emmanuele</firstname>
|
|
|
|
<surname>Bassi</surname>
|
|
|
|
<affiliation>
|
|
|
|
<address>
|
|
|
|
<email>ebassi@openedhand.com</email>
|
|
|
|
</address>
|
|
|
|
</affiliation>
|
|
|
|
</author>
|
|
|
|
</partinfo>
|
|
|
|
|
|
|
|
<title>Building Clutter</title>
|
|
|
|
|
|
|
|
<partintro>
|
|
|
|
|
|
|
|
<section id='dependencies'>
|
|
|
|
<title>Clutter Dependencies</title>
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term>GLib</term>
|
|
|
|
<listitem>
|
|
|
|
<para>A general-purpose utility library, not specific to
|
|
|
|
graphical user interfaces. GLib provides many useful data
|
|
|
|
types, macros, type conversions, string utilities, file
|
|
|
|
utilities, a main loop abstraction, and so on.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term>GObject</term>
|
|
|
|
<listitem>
|
|
|
|
<para>The GLib Object System provides the required
|
|
|
|
implementations of a flexible, extensible and intentionally
|
|
|
|
easy to map (into other languages) object-oriented framework
|
|
|
|
for C.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term>Pango</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Pango is a library for laying out and rendering
|
|
|
|
text, with an emphasis on internationalization.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term>Backend Windowing System Library</term>
|
|
|
|
<listitem>
|
2010-08-12 12:03:16 -04:00
|
|
|
<para>GLX, EGL (1.1), Cocoa (OS X) and WGL (Windows)</para>
|
2008-06-26 05:02:58 -04:00
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
|
|
<term>Graphics Rendering </term>
|
|
|
|
<listitem>
|
2010-08-12 12:03:16 -04:00
|
|
|
<para>Open GL (1.3+ or 1.2 with multitexturing support) or
|
|
|
|
Open GL ES (1.1 or 2.0)</para>
|
2008-06-26 05:02:58 -04:00
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='building-instructions'>
|
|
|
|
<title>Platform-specific instructions</title>
|
|
|
|
|
|
|
|
<section id='building-linux'>
|
|
|
|
<title>Linux</title>
|
|
|
|
|
|
|
|
<para>If you are using Debian or Ubuntu, you can install pre-compiled
|
|
|
|
binary packages the normal Debian way following the instructions at
|
|
|
|
<ulink type="http" url="http://debian.o-hand.com/">
|
|
|
|
http://debian.o-hand.com/</ulink>.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>To build Clutter clutter from sources, get the latest source
|
|
|
|
archives from <ulink type="http"
|
|
|
|
url="http://www.clutter-project.org/sources/">
|
|
|
|
http://www.clutter-project.org/sources/</ulink>. Once you have extracted
|
|
|
|
the sources from the archive execute the following commands in the
|
|
|
|
top-level directory:
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<literallayout>
|
|
|
|
$ ./configure
|
|
|
|
$ make
|
|
|
|
# make install
|
|
|
|
</literallayout>
|
|
|
|
|
|
|
|
<para>You can configure the build with number of additional arguments
|
|
|
|
passed to the configure script, the full list of which can be obtained
|
|
|
|
by running ./configure --help. The following arguments are specific to
|
|
|
|
Clutter:
|
|
|
|
|
|
|
|
<variablelist>
|
|
|
|
<varlistentry>
|
|
|
|
<term>--enable-debug=[no/minimum/yes]</term>
|
|
|
|
<listitem>
|
2009-07-21 06:50:08 -04:00
|
|
|
<para>Controls the Clutter debugging level. Possible values
|
|
|
|
are: yes (all GLib asserts, checks and runtime debug
|
|
|
|
messages); minimum - just GLib cast checks and runtime
|
|
|
|
debug messages; no (no GLib asserts or checks and no
|
|
|
|
runtime debug messages). The default is yes for development
|
|
|
|
cycles, and minimum for stable releases. You should not use
|
|
|
|
no, unless the only performance critical paths are the
|
|
|
|
GLib type system checks.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term>--enable-cogl-debug=[no/minimum/yes]</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Controls the COGL debugging level, similarly to
|
|
|
|
--enable-debug.</para>
|
2008-06-26 05:02:58 -04:00
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term>--enable-maintainer-flags=[no/yes]</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Use strict compiler flags; default=no.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term>--enable-gtk-doc</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Use gtk-doc to build documentation; default=no.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term>--enable-manual=[no/yes]</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Build application developers manual; requires jw and
|
|
|
|
xmlto binaries; default=no.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
2010-08-28 05:43:39 -04:00
|
|
|
<term>--with-flavour=[glx/eglx/eglnative/win32/osx/fruity/cex100]</term>
|
2008-06-26 05:02:58 -04:00
|
|
|
<listitem>
|
|
|
|
<para>Select the Clutter backend; default=glx.
|
|
|
|
</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2009-07-21 06:50:08 -04:00
|
|
|
<varlistentry>
|
|
|
|
<term>--with-imagebackend=[gdk-pixbuf/quartz/internal]</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Select the image loading backend; default is
|
|
|
|
set to gdk-pixbuf on Linux and Windows, and to quartz
|
|
|
|
on OS X. The internal image loading backend should only
|
|
|
|
be used when porting to a new platform or for testing
|
|
|
|
purposes, and its stability or functionality are not
|
|
|
|
guaranteed.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term>--with-gles=[1.1/2.0]</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Select the version of GLES to support in COGL;
|
|
|
|
default is 1.1.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term>--with-json=[internal/check]</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Select whether to use the internal copy of
|
|
|
|
JSON-GLib to parse the ClutterScript UI definition
|
|
|
|
files, or to check for the system installed library;
|
|
|
|
default is internal.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term>--enable-xinput=[no/yes]</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Whether to enable XInput 1 support; default is
|
|
|
|
no.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
|
|
|
<varlistentry>
|
|
|
|
<term>--enable-introspection=[no/auto/yes]</term>
|
|
|
|
<listitem>
|
|
|
|
<para>Whether to generate GObject Introspection data
|
|
|
|
at build time; default is auto.</para>
|
|
|
|
</listitem>
|
|
|
|
</varlistentry>
|
|
|
|
|
2008-06-26 05:02:58 -04:00
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
</para>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='building-windows'>
|
|
|
|
<title>Windows</title>
|
|
|
|
<para>
|
|
|
|
The recommended way of building Clutter for Windows is using the
|
2010-08-12 12:03:16 -04:00
|
|
|
<ulink type="http"
|
|
|
|
url="http://www.mingw.org/">mingw</ulink> tool chain. This
|
|
|
|
will work either by cross compiling from a Linux
|
|
|
|
installation or directly on Windows using MSYS. See
|
|
|
|
the <ulink type="http" url=
|
|
|
|
"http://wiki.clutter-project.org/wiki/BuildingClutterOnWindows">
|
|
|
|
wiki</ulink> for more information.
|
2008-06-26 05:02:58 -04:00
|
|
|
</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id='building-osx'>
|
2009-11-05 10:31:56 -05:00
|
|
|
<title>OSX</title>
|
|
|
|
<para>
|
|
|
|
Before you start you should install XCode either from the OSX
|
|
|
|
installation disk or by downloading it from the Apple website.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Note: These instructions have only been tested on OS X 10.6
|
|
|
|
(a.k.a Snow Leopard)
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
Currently the only way to install Clutter for developing
|
|
|
|
applications, or hacking on Clutter itself, is to build it yourself.
|
|
|
|
The recommended route is to install the dependencies with
|
|
|
|
the <ulink href="http://www.macports.org/">MacPorts</ulink>
|
|
|
|
project, by simply invoking:
|
|
|
|
</para>
|
2008-06-26 05:02:58 -04:00
|
|
|
|
|
|
|
<informalexample><programlisting>
|
2009-11-05 10:31:56 -05:00
|
|
|
$ sudo port install libpixman-devel cairo-devel pango gtk-doc
|
2008-06-26 05:02:58 -04:00
|
|
|
</programlisting></informalexample>
|
|
|
|
|
2009-11-05 10:31:56 -05:00
|
|
|
<para>
|
|
|
|
on a terminal, after installing and updating MacPorts.
|
|
|
|
This should give you all of the required dependencies for building
|
|
|
|
Clutter.
|
|
|
|
</para>
|
2008-06-26 05:02:58 -04:00
|
|
|
|
|
|
|
<para>
|
2009-11-05 10:31:56 -05:00
|
|
|
It should be noted that building gtk-doc pulls in a lot of other
|
|
|
|
MacPorts dependencies and takes some considerable time. You can omit
|
|
|
|
this dependency so long as you disable documentation when you are
|
|
|
|
configuring the build with
|
|
|
|
<literal>--disable-gtk-doc --disable-docs</literal>
|
2008-06-26 05:02:58 -04:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
|
|
The Clutter Quartz backend is built by passing the
|
|
|
|
<literal>--with-flavour=osx</literal> command line argument
|
|
|
|
to the configure script. If not passed, the GLX backend will
|
|
|
|
be built. By default, the Quartz backend depends on CoreGraphics
|
|
|
|
in order to load images into textures, but it can also depend
|
|
|
|
on GDK-Pixbuf or an internal, highly experimental PNG and JPEG
|
|
|
|
loader.
|
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
2009-11-05 10:31:56 -05:00
|
|
|
GTK introspection is untested on OSX (as there isn't a MacPorts
|
|
|
|
package) so it is recommended that you disable this with the
|
|
|
|
<literal>--disable-introspection</literal>.
|
2008-06-26 05:02:58 -04:00
|
|
|
</para>
|
|
|
|
|
2009-11-05 10:31:56 -05:00
|
|
|
<para>
|
|
|
|
If building on top of MacPorts, as recommended, the following
|
|
|
|
configure command should suffice:
|
2009-08-04 06:39:09 -04:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<informalexample><programlisting>
|
2009-11-05 10:31:56 -05:00
|
|
|
./configure --with-flavour=osx --disable-introspection --prefix=/opt
|
|
|
|
</programlisting></informalexample>
|
2008-06-26 05:02:58 -04:00
|
|
|
</section>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
</partintro>
|
|
|
|
</part>
|