Blame docs/reference/glib/building.xml

Packit ae235b
Packit ae235b
Packit ae235b
               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
Packit ae235b
]>
Packit ae235b
<refentry id="glib-building">
Packit ae235b
  <refmeta>
Packit ae235b
    <refentrytitle>Compiling the GLib package</refentrytitle>
Packit ae235b
    <manvolnum>3</manvolnum>
Packit ae235b
    <refmiscinfo>GLib Library</refmiscinfo>
Packit ae235b
  </refmeta>
Packit ae235b
Packit ae235b
  <refnamediv>
Packit ae235b
    <refname>Compiling the GLib Package</refname>
Packit ae235b
    <refpurpose>How to compile GLib itself</refpurpose>
Packit ae235b
  </refnamediv>
Packit ae235b
Packit ae235b
  <refsect1 id="building">
Packit ae235b
    <title>Building the Library on UNIX</title>
Packit ae235b
    <para>
Packit ae235b
      On UNIX, GLib uses the standard GNU build system,
Packit ae235b
      using <application>autoconf</application> for package
Packit ae235b
      configuration and resolving portability issues,
Packit ae235b
      <application>automake</application> for building makefiles
Packit ae235b
      that comply with the GNU Coding Standards, and
Packit ae235b
      <application>libtool</application> for building shared
Packit ae235b
      libraries on multiple platforms.  The normal sequence for
Packit ae235b
      compiling and installing the GLib library is thus:
Packit ae235b
Packit ae235b
      <literallayout>
Packit ae235b
        <userinput>./configure</userinput>
Packit ae235b
        <userinput>make</userinput>
Packit ae235b
        <userinput>make install</userinput>
Packit ae235b
      </literallayout>
Packit ae235b
    </para>
Packit ae235b
Packit ae235b
    <para>
Packit ae235b
      The standard options provided by <application>GNU
Packit ae235b
      autoconf</application> may be passed to the
Packit ae235b
      <command>configure</command> script.  Please see the
Packit ae235b
      <application>autoconf</application> documentation or run
Packit ae235b
      <command>./configure --help</command> for information about
Packit ae235b
      the standard options.
Packit ae235b
    </para>
Packit ae235b
    <para>
Packit ae235b
      GLib is compiled with
Packit ae235b
      <ulink url="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fstrict-aliasing">strict aliasing</ulink>
Packit ae235b
      disabled. It is strongly recommended that this is not re-enabled by
Packit ae235b
      overriding the compiler flags, as GLib has not been tested with strict
Packit ae235b
      aliasing and cannot be guaranteed to work.
Packit ae235b
    </para>
Packit ae235b
    <para>
Packit ae235b
      The GTK+ documentation contains
Packit ae235b
      <ulink url="https://developer.gnome.org/gtk3/stable/gtk-building.html">further details</ulink>
Packit ae235b
      about the build process and ways to influence it.
Packit ae235b
    </para>
Packit ae235b
  </refsect1>
Packit ae235b
  <refsect1 id="dependencies">
Packit ae235b
    <title>Dependencies</title>
Packit ae235b
    <para>
Packit ae235b
      Before you can compile the GLib library, you need to have
Packit ae235b
      various other tools and libraries installed on your system.
Packit ae235b
      If you are building from a release archive, you will need
Packit ae235b
      <ulink url="https://wiki.gnome.org/Projects/GLib/CompilerRequirements">a compliant C toolchain</ulink>,
Packit ae235b
      GNU Make, and <application>pkg-config</application>;
Packit ae235b
      if you are building directly from a Git repository clone
Packit ae235b
      of GLib, you will also need the GNU Autotools mentioned
Packit ae235b
      above.
Packit ae235b
    </para>
Packit ae235b
    <itemizedlist>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          <ulink url="https://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</ulink>
Packit ae235b
          is a tool for tracking the compilation flags needed for
Packit ae235b
          libraries that are used by the GLib library. (For each
Packit ae235b
          library, a small <literal>.pc</literal> text file is
Packit ae235b
          installed in a standard location that contains the compilation
Packit ae235b
          flags needed for that library along with version number
Packit ae235b
          information).
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          The GLib Makefiles make use of several features specific to
Packit ae235b
          <ulink url="http://www.gnu.org/software/make">GNU
Packit ae235b
          make</ulink>, and will not build correctly with other
Packit ae235b
          versions of <command>make</command>. You will need to
Packit ae235b
          install it if you don't already have it on your system. (It
Packit ae235b
          may be called <command>gmake</command> rather than
Packit ae235b
          <command>make</command>.)
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
    </itemizedlist>
Packit ae235b
    <para>
Packit ae235b
      A UNIX build of GLib requires that the system implements at
Packit ae235b
      least the original 1990 version of POSIX. Beyond this, it
Packit ae235b
      depends on a number of other libraries.
Packit ae235b
    </para>
Packit ae235b
    <itemizedlist>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          The <ulink url="http://www.gnu.org/software/libiconv/">GNU
Packit ae235b
          libiconv library</ulink> is needed to build GLib if your
Packit ae235b
          system doesn't have the <function>iconv()</function>
Packit ae235b
          function for doing conversion between character
Packit ae235b
          encodings. Most modern systems should have
Packit ae235b
          <function>iconv()</function>, however many older systems lack
Packit ae235b
          an <function>iconv()</function> implementation. On such systems,
Packit ae235b
          you must install the libiconv library. This can be found at:
Packit ae235b
          <ulink url="http://www.gnu.org/software/libiconv">http://www.gnu.org/software/libiconv</ulink>.
Packit ae235b
        </para>
Packit ae235b
        <para>
Packit ae235b
          If your system has an <function>iconv()</function> implementation but
Packit ae235b
          you want to use libiconv instead, you can pass the
Packit ae235b
          <option>--with-libiconv</option> option to configure. This forces
Packit ae235b
          libiconv to be used.
Packit ae235b
        </para>
Packit ae235b
        <para>
Packit ae235b
          Note that if you have libiconv installed in your default include
Packit ae235b
          search path (for instance, in <filename>/usr/local/</filename>), but
Packit ae235b
          don't enable it, you will get an error while compiling GLib because
Packit ae235b
          the <filename>iconv.h</filename> that libiconv installs hides the
Packit ae235b
          system iconv.
Packit ae235b
        </para>
Packit ae235b
        <para>
Packit ae235b
          If you are using the native iconv implementation on Solaris
Packit ae235b
          instead of libiconv, you'll need to make sure that you have
Packit ae235b
          the converters between locale encodings and UTF-8 installed.
Packit ae235b
          At a minimum you'll need the SUNWuiu8 package. You probably
Packit ae235b
          should also install the SUNWciu8, SUNWhiu8, SUNWjiu8, and
Packit ae235b
          SUNWkiu8 packages.
Packit ae235b
        </para>
Packit ae235b
        <para>
Packit ae235b
          The native iconv on Compaq Tru64 doesn't contain support for
Packit ae235b
          UTF-8, so you'll need to use GNU libiconv instead. (When
Packit ae235b
          using GNU libiconv for GLib, you'll need to use GNU libiconv
Packit ae235b
          for GNU gettext as well.) This probably applies to related
Packit ae235b
          operating systems as well.
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          The libintl library from the 
Packit ae235b
          url="http://www.gnu.org/software/gettext">GNU gettext
Packit ae235b
          package</ulink> is needed if your system doesn't have the
Packit ae235b
          <function>gettext()</function> functionality for handling
Packit ae235b
          message translation databases.
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          A thread implementation is needed. The thread support in GLib
Packit ae235b
          can be based upon POSIX threads or win32 threads.
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          GRegex uses the <ulink url="http://www.pcre.org/">PCRE library</ulink>
Packit ae235b
          for regular expression matching. The default is to use the system
Packit ae235b
          version of PCRE, to reduce the chances of security fixes going out
Packit ae235b
          of sync. GLib additionally provides an internal copy of PCRE in case
Packit ae235b
          the system version is too old, or does not support UTF-8; the internal
Packit ae235b
          copy is patched to use GLib for memory management and to share the
Packit ae235b
          same Unicode tables.
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          The optional extended attribute support in GIO requires the
Packit ae235b
          <function>getxattr()</function> family of functions that may be
Packit ae235b
          provided by the C library or by the standalone libattr library. To
Packit ae235b
          build GLib without extended attribute support, use the
Packit ae235b
          <option>--disable-xattr</option> option.
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          The optional SELinux support in GIO requires libselinux.
Packit ae235b
          To build GLib without SELinux support, use the
Packit ae235b
          <option>--disable-selinux</option> option.
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          The optional support for DTrace requires the
Packit ae235b
          <filename>sys/sdt.h</filename> header, which is provided
Packit ae235b
          by SystemTap on Linux. To build GLib without DTrace, use
Packit ae235b
          the <option>--disable-dtrace</option> configure option.
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
      <listitem>
Packit ae235b
        <para>
Packit ae235b
          The optional support for
Packit ae235b
          <ulink url="http://sourceware.org/systemtap/">SystemTap</ulink>
Packit ae235b
          can be disabled with the <option>--disable-systemtap</option>
Packit ae235b
          configure option. Additionally, you can control the location
Packit ae235b
          where GLib installs the SystemTap probes, using the
Packit ae235b
          <option>--with-tapset-install-dir=DIR</option> configure option.
Packit ae235b
        </para>
Packit ae235b
      </listitem>
Packit ae235b
    </itemizedlist>
Packit ae235b
Packit ae235b
  </refsect1>
Packit ae235b
  <refsect1 id="extra-configuration-options">
Packit ae235b
    <title>Extra Configuration Options</title>
Packit ae235b
Packit ae235b
    <para>
Packit ae235b
      In addition to the normal options, the
Packit ae235b
      <command>configure</command> script in the GLib
Packit ae235b
      library supports these additional arguments:
Packit ae235b
    </para>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--enable-debug</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        Turns on various amounts of debugging support. Setting this to 'no'
Packit ae235b
        disables <function>g_assert()</function>, <function>g_return_if_fail()</function>,
Packit ae235b
        <function>g_return_val_if_fail()</function> and all cast checks
Packit ae235b
        between different object types. Setting it to 'minimum' disables
Packit ae235b
        only cast checks. Setting it to 'yes' enables <link linkend="G-DEBUG:CAPS">runtime debugging</link>.
Packit ae235b
        The default is 'minimum' for stable releases, and 'yes' for development
Packit ae235b
        snapshots. Note that 'no' is fast, but dangerous as it tends to destabilize
Packit ae235b
        even mostly bug-free software by changing the effect of many bugs
Packit ae235b
        from simple warnings into fatal crashes. Thus
Packit ae235b
        <option>--enable-debug=no</option> should <emphasis>not</emphasis>
Packit ae235b
        be used for stable releases of GLib.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-gc-friendly</option> and
Packit ae235b
        <option>--enable-gc-friendly</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        By default, and with <option>--disable-gc-friendly</option>
Packit ae235b
        as well, GLib does not clear the memory for certain objects before
Packit ae235b
        they are freed. For example, GLib may decide to recycle GList nodes
Packit ae235b
        by putting them in a free list. However, memory profiling and debugging
Packit ae235b
        tools like <ulink url="http://www.valgrind.org">Valgrind</ulink> work
Packit ae235b
        better if an application does not keep dangling pointers to freed
Packit ae235b
        memory (even though these pointers are no longer dereferenced), or
Packit ae235b
        invalid pointers inside uninitialized memory.
Packit ae235b
        The <option>--enable-gc-friendly</option> option makes GLib
Packit ae235b
        clear memory in these situations:
Packit ae235b
      </para>
Packit ae235b
Packit ae235b
      <itemizedlist>
Packit ae235b
        <listitem>
Packit ae235b
          <para>
Packit ae235b
            When shrinking a GArray, GLib will clear the memory no longer
Packit ae235b
            available in the array: shrink an array from 10 bytes to 7, and
Packit ae235b
            the last 3 bytes will be cleared. This includes removals of single
Packit ae235b
            and multiple elements.
Packit ae235b
          </para>
Packit ae235b
        </listitem>
Packit ae235b
        <listitem>
Packit ae235b
          <para>
Packit ae235b
            When growing a GArray, GLib will clear the new chunk of memory.
Packit ae235b
            Grow an array from 7 bytes to 10 bytes, and the last 3 bytes will
Packit ae235b
            be cleared.
Packit ae235b
          </para>
Packit ae235b
        </listitem>
Packit ae235b
        <listitem>
Packit ae235b
          <para>
Packit ae235b
            The above applies to GPtrArray as well.
Packit ae235b
          </para>
Packit ae235b
        </listitem>
Packit ae235b
        <listitem>
Packit ae235b
          <para>
Packit ae235b
            When freeing a node from a GHashTable, GLib will first clear
Packit ae235b
            the node, which used to have pointers to the key and the value
Packit ae235b
            stored at that node.
Packit ae235b
          </para>
Packit ae235b
        </listitem>
Packit ae235b
        <listitem>
Packit ae235b
          <para>
Packit ae235b
            When destroying or removing a GTree node, GLib will clear the node,
Packit ae235b
            which used to have pointers to the node's value, and the left and
Packit ae235b
            right subnodes.
Packit ae235b
          </para>
Packit ae235b
        </listitem>
Packit ae235b
      </itemizedlist>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        Since clearing the memory has a cost,
Packit ae235b
        <option>--disable-gc-friendly</option> is the default.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-mem-pools</option> and
Packit ae235b
        <option>--enable-mem-pools</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        Many small chunks of memory are often allocated via collective pools
Packit ae235b
        in GLib and are cached after release to speed up reallocations.
Packit ae235b
        For sparse memory systems this behaviour is often inferior, so
Packit ae235b
        memory pools can be disabled to avoid excessive caching and force
Packit ae235b
        atomic maintenance of chunks through the <function>g_malloc()</function>
Packit ae235b
        and <function>g_free()</function> functions. Code currently affected by
Packit ae235b
        this:
Packit ae235b
        <itemizedlist>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              <structname>GMemChunk</structname>s become basically non-effective
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              <structname>GSignal</structname> disables all caching
Packit ae235b
              (potentially very slow)
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              <structname>GType</structname> doesn't honour the
Packit ae235b
              <structname>GTypeInfo</structname>
Packit ae235b
              <structfield>n_preallocs</structfield> field anymore
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              the <structname>GBSearchArray</structname> flag
Packit ae235b
              <literal>G_BSEARCH_ALIGN_POWER2</literal> becomes non-functional
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
        </itemizedlist>
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--with-threads</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        Specify a thread implementation to use. Available options are
Packit ae235b
        'posix' or 'win32'. Normally, <command>configure</command>
Packit ae235b
        should be able to work out the system threads API on its own.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--with-pcre</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        Specify whether to use the internal or the system-supplied
Packit ae235b
        PCRE library.
Packit ae235b
        <itemizedlist>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              'internal' means that GRegex will be compiled to use
Packit ae235b
              the internal PCRE library.
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              'system' means that GRegex will be compiled to use
Packit ae235b
              the system-supplied PCRE library; this is the default
Packit ae235b
              setting.
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
        </itemizedlist>
Packit ae235b
        Using the internal PCRE is the preferred solution if:
Packit ae235b
        <itemizedlist>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              your system has strict resource constraints; the system-supplied
Packit ae235b
              PCRE has a separated copy of the tables used for Unicode
Packit ae235b
              handling, whereas the internal copy shares the Unicode tables
Packit ae235b
              used by GLib.
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              your system has PCRE built without some needed features,
Packit ae235b
              such as UTF-8 and Unicode support.
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
          <listitem>
Packit ae235b
            <para>
Packit ae235b
              you are planning to use both GRegex and PCRE API at the same
Packit ae235b
              time, either directly or indirectly through a dependency; PCRE
Packit ae235b
              uses some global variables for memory management and
Packit ae235b
              other features, and if both GLib and PCRE try to access them
Packit ae235b
              at the same time, this could lead to undefined behavior.
Packit ae235b
            </para>
Packit ae235b
          </listitem>
Packit ae235b
        </itemizedlist>
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-included-printf</option> and
Packit ae235b
        <option>--enable-included-printf</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        By default the <command>configure</command> script will try
Packit ae235b
        to auto-detect whether the C library provides a suitable set
Packit ae235b
        of <function>printf()</function> functions. In detail,
Packit ae235b
        <command>configure</command> checks that the semantics of
Packit ae235b
        <function>snprintf()</function> are as specified by C99
Packit ae235b
        and that positional parameters as specified in the Single Unix
Packit ae235b
        Specification are supported. If this not the case, GLib will
Packit ae235b
        include an implementation of the <function>printf()</function>
Packit ae235b
        family.
Packit ae235b
      </para>
Packit ae235b
      <para>
Packit ae235b
        These options can be used to explicitly control whether
Packit ae235b
        an implementation of the <function>printf()</function> family
Packit ae235b
        should be included or not.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-Bsymbolic</option> and
Packit ae235b
        <option>--enable-Bsymbolic</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        By default, GLib uses the <option>-Bsymbolic-functions</option>
Packit ae235b
        linker flag to avoid intra-library PLT jumps. A side-effect
Packit ae235b
        of this is that it is no longer possible to override
Packit ae235b
        internal uses of GLib functions with
Packit ae235b
        <envar>LD_PRELOAD</envar>. Therefore, it may make
Packit ae235b
        sense to turn this feature off in some situations.
Packit ae235b
        The <option>--disable-Bsymbolic</option> option allows
Packit ae235b
        to do that.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-gtk-doc</option> and
Packit ae235b
        <option>--enable-gtk-doc</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        By default the <command>configure</command> script will try
Packit ae235b
        to auto-detect whether the
Packit ae235b
        <application>gtk-doc</application> package is installed.
Packit ae235b
        If it is, then it will use it to extract and build the
Packit ae235b
        documentation for the GLib library. These options
Packit ae235b
        can be used to explicitly control whether
Packit ae235b
        <application>gtk-doc</application> should be
Packit ae235b
        used or not. If it is not used, the distributed,
Packit ae235b
        pre-generated HTML files will be installed instead of
Packit ae235b
        building them on your machine.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-man</option> and
Packit ae235b
        <option>--enable-man</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        By default the <command>configure</command> script will try
Packit ae235b
        to auto-detect whether <application>xsltproc</application>
Packit ae235b
        and the necessary Docbook stylesheets are installed.
Packit ae235b
        If they are, then it will use them to rebuild the included
Packit ae235b
        man pages from the XML sources. These options can be used
Packit ae235b
        to explicitly control whether man pages should be rebuilt
Packit ae235b
        used or not. The distribution includes pre-generated man
Packit ae235b
        pages.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-xattr</option> and
Packit ae235b
        <option>--enable-xattr</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        By default the <command>configure</command> script will try
Packit ae235b
        to auto-detect whether the <function>getxattr()</function>
Packit ae235b
        family of functions is available. If it is, then extended
Packit ae235b
        attribute support will be included in GIO. These options can
Packit ae235b
        be used to explicitly control whether extended attribute
Packit ae235b
        support should be included or not. <function>getxattr()</function>
Packit ae235b
        and friends can be provided by glibc or by the standalone
Packit ae235b
        libattr library.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-selinux</option> and
Packit ae235b
        <option>--enable-selinux</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        By default the <command>configure</command> script will
Packit ae235b
        auto-detect if libselinux is available and include
Packit ae235b
        SELinux support in GIO if it is. These options can be
Packit ae235b
        used to explicitly control whether SELinux support should
Packit ae235b
        be included.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-dtrace</option> and
Packit ae235b
        <option>--enable-dtrace</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        By default the <command>configure</command> script will
Packit ae235b
        detect if DTrace support is available, and use it.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--disable-systemtap</option> and
Packit ae235b
        <option>--enable-systemtap</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        This option requires DTrace support. If it is available, then
Packit ae235b
        the <command>configure</command> script will also check for
Packit ae235b
        the presence of SystemTap.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--enable-coverage</option> and
Packit ae235b
        <option>--disable-coverage</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        Enable the generation of coverage reports for the GLib tests.
Packit ae235b
        This requires the lcov frontend to gcov from the
Packit ae235b
        <ulink url="http://ltp.sourceforge.net">Linux Test Project</ulink>.
Packit ae235b
        To generate a coverage report, use the lcov make target. The
Packit ae235b
        report is placed in the <filename>glib-lcov</filename> directory.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--with-runtime-libdir=RELPATH</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        Allows specifying a relative path to where to install the runtime
Packit ae235b
        libraries (meaning library files used for running, not developing,
Packit ae235b
        GLib applications). This can be used in operating system setups where
Packit ae235b
        programs using GLib needs to run before e.g. <filename>/usr</filename>
Packit ae235b
        is mounted.
Packit ae235b
        For example, if <varname>LIBDIR</varname> is <filename>/usr/lib</filename> and
Packit ae235b
        <filename>../../lib</filename> is passed to
Packit ae235b
        <option>--with-runtime-libdir</option> then the
Packit ae235b
        runtime libraries are installed into <filename>/lib</filename> rather
Packit ae235b
        than <filename>/usr/lib</filename>.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
Packit ae235b
    <formalpara>
Packit ae235b
      <title><option>--with-python=PATH</option></title>
Packit ae235b
Packit ae235b
      <para>
Packit ae235b
        Allows specifying the Python interpreter to use, either as an absolute path,
Packit ae235b
        or as a program name. GLib can be built with Python 2 (at least version 2.7)
Packit ae235b
        or, preferably, with Python 3.
Packit ae235b
      </para>
Packit ae235b
    </formalpara>
Packit ae235b
  </refsect1>
Packit ae235b
Packit ae235b
</refentry>