caps: Add gst_caps_foreach() and gst_caps_map_in_place()
[platform/upstream/gstreamer.git] / docs / gst / building.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3                "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
4 <!ENTITY % version-entities SYSTEM "version.entities">
5 %version-entities;
6 <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
7 ]>
8 <refentry id="gst-building" revision="25 mar 2009">
9 <refmeta>
10 <refentrytitle>Building GStreamer and GStreamer Applications</refentrytitle>
11 <manvolnum>3</manvolnum>
12 <refmiscinfo>GStreamer Core</refmiscinfo>
13 </refmeta>
14
15 <refnamediv>
16 <refname>Building GStreamer and GStreamer Applications</refname>
17 <refpurpose>
18 How to build the GStreamer framework and applications using it.
19 </refpurpose>
20 </refnamediv>
21
22 <refsect1>
23 <title>Building GStreamer on UNIX</title>
24
25   <!-- this has been borrowed from the glib docs -->
26   <para>
27     On UNIX, GStreamer uses the standard GNU build system,
28     using <application>autoconf</application> for package
29     configuration and resolving portability issues,
30     <application>automake</application> for building makefiles
31     that comply with the GNU Coding Standards, and
32     <application>libtool</application> for building shared
33     libraries on multiple platforms.  The normal sequence for
34     compiling and installing the GStreamer library is thus:
35
36     <literallayout>
37       <userinput>./configure</userinput>
38       <userinput>make</userinput>
39       <userinput>make install</userinput>
40     </literallayout>
41   </para>
42
43   <para>
44     The standard options provided by <application>GNU
45     autoconf</application> may be passed to the
46     <command>configure</command> script.  Please see the
47     <application>autoconf</application> documentation or run
48     <command>./configure --help</command> for information about
49     the standard options.
50   </para>
51
52   <para>
53     In addition there are several options to activate or deactivate features.
54     E.g. passing <option>--disable-gst-debug</option> to <command>configure</command>
55     will turn the debugging subsystem into a non-functional stub and remove all
56     macro based invocations from within the library (and anything compiled
57     against the library afterwards.)
58   </para>
59   <para>
60     If library size matters and one builds in a controlled environment, it is
61     also possible to totally remove subsystem code. This is intentionally not
62     offered as a configure option as it causes an ABI break. Code built against
63     a version of GStreamer without these modifications needs to be recompiled.
64
65     <literallayout>
66       <userinput>make CFLAGS="-DGST_REMOVE_DEPRECATED -DGST_REMOVE_DISABLED"</userinput>
67     </literallayout>
68
69     <itemizedlist>
70       <listitem>
71         <para>
72           <symbol>GST_REMOVE_DEPRECATED</symbol> - Omit deprecated functions
73           from the library.
74         </para>
75       </listitem>
76       <listitem>
77         <para>
78           <symbol>GST_REMOVE_DISABLED</symbol> - Omit stubs for disabled
79           subsystems from the library.
80         </para>
81       </listitem>
82     </itemizedlist>
83   </para>
84
85 </refsect1>
86
87 <refsect1>
88 <title>Building GStreamer Applications</title>
89
90 <para>
91 Applications and libraries can use <command>pkg-config</command> to get all the
92 needed compiler and linker flags to build against GStreamer. Please note that
93 GStreamer is split into several libraries itself.
94 <command>pkg-config --list-all | grep gstreamer</command> will list the
95 available libraries.
96 </para>
97
98 </refsect1>
99
100 </refentry>