blob: a7f8fc57e339c569a1fabd74731aba2e55e8ca7d [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % version-entities SYSTEM "version.entities">
%version-entities;
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
]>
<refentry id="gst-building" revision="25 mar 2009">
<refmeta>
<refentrytitle>Building GStreamer and GStreamer Applications</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GStreamer Core</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Building GStreamer and GStreamer Applications</refname>
<refpurpose>
How to build the GStreamer framework and applications using it.
</refpurpose>
</refnamediv>
<refsect1>
<title>Building GStreamer on UNIX</title>
<!-- this has been borrowed from the glib docs -->
<para>
On UNIX, GStreamer uses the standard GNU build system,
using <application>autoconf</application> for package
configuration and resolving portability issues,
<application>automake</application> for building makefiles
that comply with the GNU Coding Standards, and
<application>libtool</application> for building shared
libraries on multiple platforms. The normal sequence for
compiling and installing the GStreamer library is thus:
<literallayout>
<userinput>./configure</userinput>
<userinput>make</userinput>
<userinput>make install</userinput>
</literallayout>
</para>
<para>
The standard options provided by <application>GNU
autoconf</application> may be passed to the
<command>configure</command> script. Please see the
<application>autoconf</application> documentation or run
<command>./configure --help</command> for information about
the standard options.
</para>
<para>
In addition there are several options to activate or deactivate features.
E.g. passing <option>--disable-gst-debug</option> to <command>configure</command>
will turn the debugging subsystem into a non-functional stub and remove all
macro based invocations from within the library (and anything compiled
against the library afterwards.)
</para>
<para>
If library size matters and one builds in a controlled environment, it is
also possible to totally remove subsystem code. This is intentionally not
offered as a configure option as it causes an ABI break. Code built against
a version of GStreamer without these modifications needs to be recompiled.
<literallayout>
<userinput>make CFLAGS="-DGST_REMOVE_DEPRECATED -DGST_REMOVE_DISABLED"</userinput>
</literallayout>
<itemizedlist>
<listitem>
<para>
<symbol>GST_REMOVE_DEPRECATED</symbol> - Omit deprecated functions
from the library.
</para>
</listitem>
<listitem>
<para>
<symbol>GST_REMOVE_DISABLED</symbol> - Omit stubs for disabled
subsystems from the library.
</para>
</listitem>
</itemizedlist>
</para>
</refsect1>
<refsect1>
<title>Building GStreamer Applications</title>
<para>
Applications and libraries can use <command>pkg-config</command> to get all the
needed compiler and linker flags to build against GStreamer. Please note that
GStreamer is split into several libraries itself.
<command>pkg-config --list-all | grep gstreamer</command> will list the
available libraries.
</para>
</refsect1>
</refentry>