<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Building GStreamer and GStreamer Applications: GStreamer 1.0 Core Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="gstreamer.html" title="GStreamer Overview">
<link rel="prev" href="gstreamer.html" title="GStreamer Overview">
<link rel="next" href="gst-running.html" title="Running GStreamer Applications">
<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gstreamer.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gstreamer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gst-running.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gst-building"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">Building GStreamer and GStreamer Applications</span></h2>
<p>Building GStreamer and GStreamer Applications — 
How to build the GStreamer framework and applications using it.
</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="id-1.2.5.3"></a><h2>Building GStreamer on UNIX</h2>
<p>
    On UNIX, GStreamer uses the standard GNU build system,
    using <span class="application">autoconf</span> for package
    configuration and resolving portability issues,
    <span class="application">automake</span> for building makefiles
    that comply with the GNU Coding Standards, and
    <span class="application">libtool</span> for building shared
    libraries on multiple platforms.  The normal sequence for
    compiling and installing the GStreamer library is thus:

    </p>
<div class="literallayout"><p><br>
      <strong class="userinput"><code>./configure</code></strong><br>
      <strong class="userinput"><code>make</code></strong><br>
      <strong class="userinput"><code>make install</code></strong><br>
    </p></div>
<p>
  </p>
<p>
    The standard options provided by <span class="application">GNU
    autoconf</span> may be passed to the
    <span class="command"><strong>configure</strong></span> script.  Please see the
    <span class="application">autoconf</span> documentation or run
    <span class="command"><strong>./configure --help</strong></span> for information about
    the standard options.
  </p>
<p>
    In addition there are several options to activate or deactivate features.
    E.g. passing <code class="option">--disable-gst-debug</code> to <span class="command"><strong>configure</strong></span>
    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.)
  </p>
<p>
    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.

    </p>
<div class="literallayout"><p><br>
      <strong class="userinput"><code>make CFLAGS="-DGST_REMOVE_DEPRECATED -DGST_REMOVE_DISABLED"</code></strong><br>
    </p></div>
<p>

    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>
          <span class="symbol">GST_REMOVE_DEPRECATED</span> - Omit deprecated functions
          from the library.
        </p></li>
<li class="listitem"><p>
          <span class="symbol">GST_REMOVE_DISABLED</span> - Omit stubs for disabled
          subsystems from the library.
        </p></li>
</ul></div>
<p>
  </p>
</div>
<div class="refsect1">
<a name="id-1.2.5.4"></a><h2>Building GStreamer Applications</h2>
<p>
Applications and libraries can use <span class="command"><strong>pkg-config</strong></span> to get all the
needed compiler and linker flags to build against GStreamer. Please note that
GStreamer is split into several libraries itself.
<span class="command"><strong>pkg-config --list-all | grep gstreamer</strong></span> will list the
available libraries.
</p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>