<commit_before><?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
<refentry id="glib-building">
  <refmeta>
    <refentrytitle>Compiling the GLib package</refentrytitle>
    <manvolnum>3</manvolnum>
    <refmiscinfo>GLib Library</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>Compiling the GLib Package</refname>
    <refpurpose>How to compile GLib itself</refpurpose>
  </refnamediv>

  <refsect1 id="building">
    <title>Building the Library on UNIX</title>
    <para>
      On UNIX, GLib 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 GLib 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>
      The GTK+ documentation contains
      <ulink url="https://developer.gnome.org/gtk3/stable/gtk-building.html">further details</ulink>
      about the build process and ways to influence it.
    </para>
  </refsect1>
  <refsect1 id="dependencies">
    <title>Dependencies</title>
    <para>
      Before you can compile the GLib library, you need to have
      various other tools and libraries installed on your system.
      If you are building from a release archive, you will need
      <ulink url="https://wiki.gnome.org/Projects/GLib/CompilerRequirements">a compliant C toolchain</ulink>,
      GNU Make, and <application>pkg-config</application>;
      if you are building directly from a Git repository clone
      of GLib, you will also need the GNU Autotools mentioned
      above.
    </para>
    <itemizedlist>
      <listitem><commit_msg>docs: Mention that we build with strict-aliasing disabled<commit_after><?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
               "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
]>
<refentry id="glib-building">
  <refmeta>
    <refentrytitle>Compiling the GLib package</refentrytitle>
    <manvolnum>3</manvolnum>
    <refmiscinfo>GLib Library</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>Compiling the GLib Package</refname>
    <refpurpose>How to compile GLib itself</refpurpose>
  </refnamediv>

  <refsect1 id="building">
    <title>Building the Library on UNIX</title>
    <para>
      On UNIX, GLib 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 GLib 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>
      GLib is compiled with
      <ulink url="https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fstrict-aliasing">strict aliasing</ulink>
      disabled. It is strongly recommended that this is not re-enabled by
      overriding the compiler flags, as GLib has not been tested with strict
      aliasing and cannot be guaranteed to work.
    </para>
    <para>
      The GTK+ documentation contains
      <ulink url="https://developer.gnome.org/gtk3/stable/gtk-building.html">further details</ulink>
      about the build process and ways to influence it.
    </para>
  </refsect1>
  <refsect1 id="dependencies">
    <title>Dependencies</title>
    <para>
      Before you can compile the GLib library, you need to have
      various other tools and libraries installed on your system.
      If you are building from a release archive, you will need
      <ulink url="https://wiki.gnome.org/Projects/GLib/CompilerRequirements">a compliant C toolchain</ulink>,
      GNU Make, and <application>pkg-config</application>;
      if you are building directly from a Git repository clone
      of GLib, you will also need the GNU Autotools mentioned
      above.
    </para>
    <itemizedlist>
      <listitem>
{'fraction_non_alphanumeric': 0.09872372372372372, 'fraction_numerical': 0.004129129129129129, 'mean_word_length': 3.1894654088050314, 'pattern_counts': {'":': 0, '<': 131, '<?xml version=': 2, '>': 131, 'https://': 5, 'lorem ipsum': 0, 'www.': 2, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6865567', 'n_tokens_mistral': 1557, 'n_tokens_neox': 1496, 'n_words': 476}