[gtk+/wip/ebassi/no-autotools: 21/21] docs: Update the 'building gtk' guide



commit a858d31771541bb1ca9c3588e1dc72d600cf1e67
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Mon Aug 14 12:32:33 2017 +0100

    docs: Update the 'building gtk' guide
    
    Clean up for Meson.

 docs/reference/gtk/building.sgml |  484 +++++++++++++-------------------------
 1 files changed, 160 insertions(+), 324 deletions(-)
---
diff --git a/docs/reference/gtk/building.sgml b/docs/reference/gtk/building.sgml
index eb4232b..fd5f076 100644
--- a/docs/reference/gtk/building.sgml
+++ b/docs/reference/gtk/building.sgml
@@ -16,14 +16,7 @@ How to compile GTK+ itself
 </refpurpose>
 </refnamediv>
   <refsect1 id="overview">
-    <title>Building GTK+ on UNIX-like systems</title>
-    <para>
-      This chapter covers building and installing GTK+ on UNIX and
-      UNIX-like systems such as Linux. Compiling GTK+ on Microsoft
-      Windows is different in detail and somewhat more difficult to
-      get going since the necessary tools aren't included with
-      the operating system.
-    </para>
+    <title>Building GTK+</title>
     <para>
       Before we get into the details of how to compile GTK+, we should
       mention that in many cases, binary packages of GTK+ prebuilt for
@@ -35,64 +28,51 @@ How to compile GTK+ itself
       already.
     </para>
     <para>
-      On UNIX-like systems GTK+ 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.
+      In order to build GTK+, you will need <application>meson</application>
+      installed on your system. On Linux, and other UNIX-like operating
+      systems, you will also need <application>ninja</application>. This
+      guide does not cover how to install these two requirements, but you
+      can refer to the <ulink url="http://mesonbuild.com";>Meson website</ulink>
+      for more information. The <ulink url="https://ninja-build.org";>Ninja</ulink>
+      build tool is also usable on various operating systems, so we will
+      refer to it in the examples.
     </para>
     <para>
-      If you are building GTK+ from the distributed source packages,
-      then you won't need these tools installed; the necessary pieces
-      of the tools are already included in the source packages. But
-      it's useful to know a bit about how packages that use these
-      tools work. A source package is distributed as a
-      <literal>tar.bz2</literal> or <literal>tar.xz</literal> file
-      which you unpack into a directory full of the source files as follows:
+      If you are building GTK+ from a source distribution or from a Git
+      clone, you will need to use <application>meson</application> to
+      configure the project. The most commonly useful argument is the
+      <systemitem>--prefix</systemitem> one, which determines where the
+      files will go once installed. To install GTK+ under a prefix
+      like <filename>/opt/gtk</filename> you would run Meson as:
     </para>
-    <programlisting>
-      tar xvfj gtk+-3.2.0.tar.bz2
-      tar xvfJ gtk+-3.2.0.tar.xz
-    </programlisting>
+    <informalexample>
+      <programlisting>
+        meson --prefix /opt/gtk builddir
+      </programlisting>
+    </informalexample>
     <para>
-      In the toplevel directory that is created, there will be
-      a shell script called <filename>configure</filename> which
-      you then run to take the template makefiles called
-      <filename>Makefile.in</filename> in the package and create
-      makefiles customized for your operating system.
-      The <filename>configure</filename> script can be passed
-      various command line arguments to determine how the package
-      is built and installed. The most commonly useful argument is
-      the <systemitem>--prefix</systemitem> argument which
-      determines where the package is installed. To install a package
-      in <filename>/opt/gtk</filename> you would run configure as:
+      Meson will create the <filename>builddir</filename> directory and
+      place all the build artefacts there.
     </para>
-    <programlisting>
-      ./configure --prefix=/opt/gtk
-    </programlisting>
     <para>
-      A full list of options can be found by running
-      <filename>configure</filename> with the
-      <systemitem>--help</systemitem> argument. In general, the defaults are
-      right and should be trusted. After you've run
-      <filename>configure</filename>, you then run the
-      <command>make</command> command to build the package and install
-      it.
+      You can get a list of all available options for the build by
+      running <application>mesonconf</application>.
     </para>
-    <programlisting>
-      make
-      make install
-    </programlisting>
+    <para>
+      After Meson successfully configured the build directory, you then
+      can run the build, using Ninja:
+    </para>
+    <informalexample>
+      <programlisting>
+        cd builddir
+        ninja
+        ninja install
+      </programlisting>
+    </informalexample>
     <para>
       If you don't have permission to write to the directory you are
       installing in, you may have to change to root temporarily before
-      running <literal>make install</literal>. Also, if you are
-      installing in a system directory, on some systems (such as
-      Linux), you will need to run <command>ldconfig</command> after
-      <literal>make install</literal> so that the newly installed
-      libraries will be found.
+      running <literal>ninja install</literal>.
     </para>
     <para>
       Several environment variables are useful to pass to set before
@@ -131,35 +111,21 @@ How to compile GTK+ itself
     <para>
       Before you can compile the GTK+ widget toolkit, you need to have
       various other tools and libraries installed on your
-      system. The two tools needed during the build process (as
-      differentiated from the tools used in when creating GTK+
-      mentioned above such as <application>autoconf</application>)
-      are <command>pkg-config</command> and GNU make.
+      system. Dependencies of GTK+ have their own build systems, so
+      you will need to refer to their own installation instructions.
+    </para>
+    <para>
+      A particular important tool used by GTK+ to find its dependencies
+      is <application>pkg-config</application>.
+    </para>
+    <para>
+      <ulink url="https://www.freedesktop.org/wiki/Software/pkg-config/";>pkg-config</ulink>
+      is a tool for tracking the compilation flags needed for
+      libraries that are used by the GTK+ libraries. (For each
+      library, a small <literal>.pc</literal> text file is installed
+      in a standard location that contains the compilation flags
+      needed for that library along with version number information.)
     </para>
-    <itemizedlist>
-      <listitem>
-        <para>
-          <ulink
-          url="https://www.freedesktop.org/wiki/Software/pkg-config/";>pkg-config</ulink>
-          is a tool for tracking the compilation flags needed for
-          libraries that are used by the GTK+ libraries. (For each
-          library, a small <literal>.pc</literal> text file is installed
-          in a standard location that contains the compilation flags
-          needed for that library along with version number information.)
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          The GTK+ makefiles will mostly work with different versions
-          of <command>make</command>, however, there tends to be
-          a few incompatibilities, so the GTK+ team recommends
-          installing <ulink url="https://www.gnu.org/software/make";>GNU
-            make</ulink> if you don't already have it on your system
-          and using it. (It may be called <command>gmake</command>
-          rather than <command>make</command>.)
-        </para>
-      </listitem>
-    </itemizedlist>
     <para>
       Some of the libraries that GTK+ depends on are maintained by
       by the GTK+ team: GLib, GdkPixbuf, Pango, ATK and GObject Introspection.
@@ -171,17 +137,14 @@ How to compile GTK+ itself
           The GLib library provides core non-graphical functionality
           such as high level data types, Unicode manipulation, and
           an object and type system to C programs. It is available
-          from the <ulink url="https://ftp.gtk.org/pub/glib/";>GTK+
-          FTP site</ulink> or
-          <ulink url="https://download.gnome.org/sources/glib/";>here</ulink>.
+          from  <ulink url="https://download.gnome.org/sources/glib/";>here</ulink>.
         </para>
       </listitem>
       <listitem>
         <para>
           The <ulink url="https://git.gnome.org/browse/gdk-pixbuf/";>GdkPixbuf library</ulink>
           provides facilities for loading images in a variety of file formats.
-          It is available
-          <ulink url="https://download.gnome.org/sources/gdk-pixbuf/";>here</ulink>.
+          It is available <ulink url="https://download.gnome.org/sources/gdk-pixbuf/";>here</ulink>.
         </para>
       </listitem>
       <listitem>
@@ -250,15 +213,22 @@ How to compile GTK+ itself
         <para>
           <ulink url="https://www.cairographics.org";>Cairo</ulink>
           is a graphics library that supports vector graphics and image
-          compositing. Both Pango and GTK+ use cairo for all of their
-          drawing.
+          compositing. Both Pango and GTK+ use Cairo for drawing.
         </para>
       </listitem>
       <listitem>
         <para>
           <ulink url="https://github.com/anholt/libepoxy";>libepoxy</ulink>
           is a library that abstracts the differences between different
-          OpenGL libraries. GTK+ uses it for cross-platform GL support.
+          OpenGL libraries. GTK+ uses it for cross-platform GL support
+          and for its own drawing.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <ulink url="https://github.com/anholt/libepoxy";>Graphene</ulink>
+          is a library that provides vector and matrix types for 2D and
+          3D transformations. GTK+ uses it internally for drawing.
         </para>
       </listitem>
       <listitem>
@@ -284,35 +254,32 @@ How to compile GTK+ itself
     <title>Building and testing GTK+</title>
     <para>
       First make sure that you have the necessary external
-      dependencies installed: <command>pkg-config</command>, GNU make,
+      dependencies installed: <command>pkg-config</command>, Meson, Ninja,
       the JPEG, PNG, and TIFF libraries, FreeType, and, if necessary,
       libiconv and libintl. To get detailed information about building
       these packages, see the documentation provided with the
-      individual packages.
-      On a Linux system, it's quite likely you'll have all of these
-      installed already except for <command>pkg-config</command>.
+      individual packages. On any average Linux system, it's quite likely
+      you'll have all of these installed already, or they will be easily
+      accessible through your operating system package repositories.
     </para>
     <para>
       Then build and install the GTK+ libraries in the order:
-      GLib, Pango, ATK, then GTK+. For each library, follow the
-      steps of <literal>configure</literal>, <literal>make</literal>,
-      <literal>make install</literal> mentioned above. If you're
-      lucky, this will all go smoothly, and you'll be ready to
-      <link linkend="gtk-compiling">start compiling your own GTK+
-      applications</link>. You can test your GTK+ installation
-      by running the <command>gtk3-demo</command> program that
+      GLib, Cairo, Pango, ATK, then GTK+. For each library, follow the
+      instructions they provide, and make sure to share common settings
+      between them and the GTK+ build; if you are using a separate prefix
+      for GTK+, for instance, you will need to use the same prefix for all
+      its dependencies you build. If you're lucky, this will all go smoothly,
+      and you'll be ready to <link linkend="gtk-compiling">start compiling
+      your own GTK+ applications</link>. You can test your GTK+ installation
+      by running the <command>gtk4-demo</command> program that
       GTK+ installs.
     </para>
     <para>
-      If one of the <filename>configure</filename> scripts fails or running
-      <command>make</command> fails, look closely at the error
-      messages printed; these will often provide useful information
-      as to what went wrong. When <filename>configure</filename>
-      fails, extra information, such as errors that a test compilation
-      ran into, is found in the file <filename>config.log</filename>.
-      Looking at the last couple of hundred lines in this file will
-      frequently make clear what went wrong. If all else fails, you
-      can ask for help on the gtk-list mailing list.
+      If one of the projects you're configuring or building fails, look
+      closely at the error messages printed; these will often provide useful
+      information as to what went wrong. Every build system has its own
+      log that can help you understand the issue you're encountering. If all
+      else fails, you can ask for help on the gtk-list mailing list.
       See <xref linkend="gtk-resources"/> for more information.
     </para>
   </refsect1>
@@ -320,129 +287,124 @@ How to compile GTK+ itself
       <title>Extra Configuration Options</title>
 
       <para>
-        In addition to the normal options, the
-        <command>configure</command> script for the GTK+ library
-        supports a number of additional arguments. (Command line
-        arguments for the other GTK+ libraries are described in
-        the documentation distributed with the those libraries.)
+        In addition to the normal options provided by Meson, GTK+ defines
+        various arguments that modify what should be built.
 
         <cmdsynopsis>
-          <command>configure</command>
-          <sbr/>
-          <group>
-            <arg choice="plain">--disable-modules</arg>
-            <arg choice="plain">--enable-modules</arg>
-          </group>
+          <command>meson</command>
           <sbr/>
           <group>
-            <arg>--with-included-immodules=MODULE1,MODULE2,...</arg>
+            <arg choice="plain">-Ddisable-modules=true</arg>
+            <arg choice="plain">-Ddisable-modules=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-debug=[no/minimum/yes]</arg>
+            <arg choice="plain">-Dwith-included-immodules=MODULE1,MODULE2,...</arg>
+            <arg choice="plain">-Dwith-included-immodules=all</arg>
+            <arg choice="plain">-Dwith-included-immodules=none</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--disable-Bsymbolic</arg>
-            <arg choice="plain">--enable-Bsymbolic</arg>
+            <arg choice="plain">-Denable-documentation=true</arg>
+            <arg choice="plain">-Denable-documentation=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--disable-xkb</arg>
-            <arg choice="plain">--enable-xkb</arg>
+            <arg choice="plain">-Denable-man-pages=true</arg>
+            <arg choice="plain">-Denable-man-pages=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--disable-xinerama</arg>
-            <arg choice="plain">--enable-xinerama</arg>
+            <arg choice="plain">-Denable-cups-print-backend=yes</arg>
+            <arg choice="plain">-Denable-cups-print-backend=no</arg>
+            <arg choice="plain">-Denable-cups-print-backend=auto</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--disable-gtk-doc</arg>
-            <arg choice="plain">--enable-gtk-doc</arg>
+            <arg choice="plain">-Denable-papi-print-backend=yes</arg>
+            <arg choice="plain">-Denable-papi-print-backend=no</arg>
+            <arg choice="plain">-Denable-papi-print-backend=auto</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--disable-cups</arg>
-            <arg choice="plain">--enable-cups</arg>
+            <arg choice="plain">-Denable-cloudprint-print-backend=yes</arg>
+            <arg choice="plain">-Denable-cloudprint-print-backend=no</arg>
+            <arg choice="plain">-Denable-cloudprint-print-backend=auto</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--disable-papi</arg>
-            <arg choice="plain">--enable-papi</arg>
+            <arg choice="plain">-Denable-test-print-backend=yes</arg>
+            <arg choice="plain">-Denable-test-print-backend=no</arg>
+            <arg choice="plain">-Denable-test-print-backend=auto</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-xinput</arg>
-            <arg choice="plain">--disable-xinput</arg>
+            <arg choice="plain">-Denable-colord=yes</arg>
+            <arg choice="plain">-Denable-colord=no</arg>
+            <arg choice="plain">-Denable-colord=auto</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-packagekit</arg>
-            <arg choice="plain">--disable-packagekit</arg>
+            <arg choice="plain">-Denable-vulkan=yes</arg>
+            <arg choice="plain">-Denable-vulkan=no</arg>
+            <arg choice="plain">-Denable-vulkan=auto</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-x11-backend</arg>
-            <arg choice="plain">--disable-x11-backend</arg>
+            <arg choice="plain">-Denable-x11-backend=true</arg>
+            <arg choice="plain">-Denable-x11-backend=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-win32-backend</arg>
-            <arg choice="plain">--disable-win32-backend</arg>
+            <arg choice="plain">-Denable-xinerama=true</arg>
+            <arg choice="plain">-Denable-xinerama=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-quartz-backend</arg>
-            <arg choice="plain">--disable-quartz-backend</arg>
+            <arg choice="plain">-Denable-win32-backend=true</arg>
+            <arg choice="plain">-Denable-win32-backend=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-broadway-backend</arg>
-            <arg choice="plain">--disable-broadway-backend</arg>
+            <arg choice="plain">-Denable-quartz-backend=true</arg>
+            <arg choice="plain">-Denable-quartz-backend=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-wayland-backend</arg>
-            <arg choice="plain">--disable-wayland-backend</arg>
+            <arg choice="plain">-Denable-broadway-backend=true</arg>
+            <arg choice="plain">-Denable-broadway-backend=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-mir-backend</arg>
-            <arg choice="plain">--disable-mir-backend</arg>
+            <arg choice="plain">-Denable-wayland-backend=true</arg>
+            <arg choice="plain">-Denable-wayland-backend=false</arg>
           </group>
           <sbr/>
           <group>
-            <arg choice="plain">--enable-introspection=[no/auto/yes]</arg>
-          </group>
-          <sbr/>
-          <group>
-            <arg choice="plain">--enable-installed-tests</arg>
-            <arg choice="plain">--disable-installed-tests</arg>
+            <arg choice="plain">-Denable-mir-backend=true</arg>
+            <arg choice="plain">-Denable-mir-backend=false</arg>
           </group>
         </cmdsynopsis>
       </para>
 
       <formalpara>
-        <title><systemitem>--disable-modules</systemitem> and
-          <systemitem>--enable-modules</systemitem></title>
+        <title><systemitem>disable-modules</systemitem></title>
 
         <para>
           Normally GTK+ will try to build the input method modules
           as little shared libraries that are loaded on demand.
-          The <systemitem>--disable-modules</systemitem> argument
+          The <systemitem>disable-modules</systemitem> option
           indicates that they should all be built statically
           into the GTK+ library instead. This is useful for
           people who need to produce statically-linked binaries.
-          If neither <systemitem>--disable-modules</systemitem> nor
-          <systemitem>--enable-modules</systemitem> is specified,
+          If <systemitem>disable-modules</systemitem> is not specified,
           then the <command>configure</command> script will try to
           auto-detect whether shared modules work on your system.
         </para>
       </formalpara>
 
       <formalpara>
-        <title><systemitem>--with-included-immodules</systemitem></title>
+        <title><systemitem>with-included-immodules</systemitem></title>
 
         <para>
          This option allows you to specify which input method modules you
@@ -452,101 +414,18 @@ How to compile GTK+ itself
       </formalpara>
 
       <formalpara>
-        <title><systemitem>--enable-debug</systemitem></title>
-
-        <para>
-         Turns on various amounts of debugging support. Setting this to
-         'no' disables g_assert(), g_return_if_fail(), g_return_val_if_fail()           and all cast checks 
between different object types. Setting it
-         to 'minimum' disables only cast checks. Setting it to 'yes' enables
-         <link linkend="GTK-Debug-Options">runtime debugging</link>.
-         The default is 'minimum'.
-         Note that 'no' is fast, but dangerous as it tends to destabilize
-         even mostly bug-free software by changing the effect of many bugs
-         from simple warnings into fatal crashes. Thus
-         <option>--enable-debug=no</option> should <emphasis>not</emphasis>
-         be used for stable releases of GTK+.
-        </para>
-      </formalpara>
-
-      <formalpara>
-        <title><systemitem>--disable-Bsymbolic</systemitem> and
-          <systemitem>--enable-Bsymbolic</systemitem></title>
-        <para>
-          The option <systemitem>--disable-Bsymbolic</systemitem>
-          turns off the use of the -Bsymbolic-functions linker flag.
-          This is only necessary if you want to override GTK+ functions
-          by using <envar>LD_PRELOAD</envar>.
-        </para>
-      </formalpara>
+        <title><systemitem>enable-xinerama</systemitem></title>
 
-      <formalpara>
-        <title><systemitem>--enable-explicit-deps</systemitem> and
-          <systemitem>--disable-explicit-deps</systemitem></title>
-        <para>
-          If <systemitem>--enable-explicit-deps</systemitem> is
-          specified then GTK+ will write the full set of libraries
-          that GTK+ depends upon into its <literal>.pc</literal> files to be used when
-          programs depending on GTK+ are linked. Otherwise, GTK+
-          only will include the GTK+ libraries themselves, and
-          will depend on system library dependency facilities to
-          bring in the other libraries.
-          By default GTK+ will disable explicit dependencies unless
-          it detects that they are needed on the system. (If you
-          specify <systemitem>--enable-static</systemitem> to force
-          building of static libraries, then explicit dependencies
-          will be written since library dependencies don't work
-          for static libraries.) Specifying
-          <systemitem>--enable-explicit-deps</systemitem> or
-          <systemitem>--enable-static</systemitem> can cause
-          compatibility
-          problems when libraries that GTK+ depends upon change
-          their versions, and should be avoided if possible.
-        </para>
-      </formalpara>
-
-      <formalpara>
-        <title><systemitem>--disable-xkb</systemitem> and
-          <systemitem>--enable-xkb</systemitem></title>
-
-        <para>
-          By default the <command>configure</command> script will try
-          to auto-detect whether the XKB extension is supported by
-          the X libraries GTK+ is linked with.
-          These options can be used to explicitly control whether
-          GTK+ will support the XKB extension.
-        </para>
-      </formalpara>
-
-      <formalpara>
-        <title><systemitem>--disable-xinerama</systemitem> and
-          <systemitem>--enable-xinerama</systemitem></title>
-
-        <para>
-          By default the <command>configure</command> script will try
-          to link against the Xinerama libraries if they are found.
-          These options can be used to explicitly control whether
-          Xinerama should be used.
-        </para>
-      </formalpara>
-
-      <formalpara>
-        <title><systemitem>--disable-xinput</systemitem> and
-           <systemitem>--enable-xinput</systemitem></title>
         <para>
-          Controls whether GTK+ is built with support for the XInput
-          or XInput2 extension. These extensions provide an extended
-          interface to input devices such as graphics tablets.
-          When this support is compiled in, specially written
-          GTK+ programs can get access to subpixel positions,
-          multiple simultaneous input devices, and extra "axes"
-          provided by the device such as pressure and tilt
-          information.
+          By default GTK+ will try to link against the Xinerama libraries
+          if they are found. This options can be used to explicitly control
+          whether Xinerama should be used.
         </para>
       </formalpara>
 
       <formalpara>
-        <title><systemitem>--disable-gtk-doc</systemitem> and
-          <systemitem>--enable-gtk-doc</systemitem></title>
+        <title><systemitem>enable-documentation</systemitem> and
+          <systemitem>enable-man-pages</systemitem></title>
 
         <para>
           The <application>gtk-doc</application> package is
@@ -557,93 +436,50 @@ How to compile GTK+ itself
           <application>gtk-doc</application> installed and
           are modifying GTK+, you may want to enable
           <application>gtk-doc</application> support by passing
-          in <systemitem>--enable-gtk-doc</systemitem>. If not
-          enabled, pre-generated HTML files distributed with GTK+
-          will be installed.
+          in <systemitem>enable-documentation</systemitem>.
         </para>
-      </formalpara>
-
-      <formalpara>
-        <title><systemitem>--disable-cups</systemitem> and
-          <systemitem>--enable-cups</systemitem></title>
-
-        <para>
-          By default the <command>configure</command> script will try
-          to build the cups print backend if the cups libraries are found.
-          These options can be used to explicitly control whether
-          the cups print backend should be built.
-        </para>
-      </formalpara>
-
-      <formalpara>
-        <title><systemitem>--disable-papi</systemitem> and
-          <systemitem>--enable-papi</systemitem></title>
-
         <para>
-          By default the <command>configure</command> script will try
-          to build the papi print backend if the papi libraries are found.
-          These options can be used to explicitly control whether
-          the papi print backend should be built.
+          Additionally, some tools provided by GTK+ have their own
+          manual pages generated using a similar set of dependencies;
+          if you have <application>xsltproc</application> then you
+          can generate manual pages by passing <systemitem>enable-man-pages</systemitem>
+          when configuring the build.
         </para>
       </formalpara>
 
       <formalpara>
-        <title><systemitem>--disable-packagekit</systemitem> and
-           <systemitem>--enable-packagekit</systemitem></title>
-        <para>
-          By default the <command>configure</command> script will try
-          to build the PackageKit support for the open-with dialog if
-          the PackageKit libraries are found.
-          These options can be used to explicitly control whether
-          PackageKit support should be built.
-        </para>
-      </formalpara>
-
-      <formalpara>
-        <title><systemitem>--enable-x11-backend</systemitem>,
-          <systemitem>--disable-x11-backend</systemitem>,
-          <systemitem>--enable-win32-backend</systemitem>,
-          <systemitem>--disable-win32-backend</systemitem>,
-          <systemitem>--enable-quartz-backend</systemitem>,
-          <systemitem>--disable-quartz-backend</systemitem>,
-          <systemitem>--enable-broadway-backend</systemitem>,
-          <systemitem>--disable-broadway-backend</systemitem>,
-          <systemitem>--enable-wayland-backend</systemitem>,
-          <systemitem>--disable-wayland-backend</systemitem>
-          <systemitem>--enable-mir-backend</systemitem>, and
-          <systemitem>--disable-mir-backend</systemitem></title>
+        <title><systemitem>enable-cups-print-backend</systemitem>,
+          <systemitem>enable-papi-print-backend</systemitem>,
+          <systemitem>enable-cloudprint-print-backend</systemitem>, and
+          <systemitem>enable-test-print-backend</systemitem></title>
 
         <para>
-          Enables specific backends for GDK.  If none of these options
-          are given, the x11 backend will be enabled by default,
-          unless the platform is Windows, in which case the default is
-          win32.  If any backend is explicitly enabled or disabled, no
-          other platform will be enabled automatically.  Other
-          supported backends are the quartz backend for OS X.
+          By default, GTK+ will try to build various print backends if
+          their dependencies are found. These options can be used to
+          explicitly control whether each print backend should be built
+          or not.
         </para>
       </formalpara>
 
       <formalpara>
-        <title><systemitem>--enable-introspection</systemitem></title>
+        <title><systemitem>-Denable-x11-backend</systemitem>,
+          <systemitem>-Denable-win32-backend</systemitem>,
+          <systemitem>-Denable-quartz-backend</systemitem>,
+          <systemitem>-Denable-broadway-backend</systemitem>,
+          <systemitem>-Denable-wayland-backend</systemitem>, and
+          <systemitem>-Denable-mir-backend</systemitem></title>
 
         <para>
-          Build with or without introspection support.
-          The default is 'auto'.
+          Enable specific backends for GDK.  If none of these options
+          are given, the Wayland backend will be enabled by default,
+          if the platform is Linux; the X11 backend will also be enabled
+          by default, unless the platform is Windows, in which case the
+          default is win32, or the platform is macOS, in which case the
+          default is quartz. If any backend is explicitly enabled or disabled,
+          no other platform will be enabled automatically.
         </para>
       </formalpara>
 
-      <formalpara>
-        <title><systemitem>--enable-installed-tests</systemitem> or
-           <systemitem>--disable-installed-tests</systemitem></title>
-
-        <para>
-          Whether to install tests on the system. If enabled, tests
-          and their data are installed in <filename>${libexecdir}/gtk+/installed-tests</filename>.
-          Metadata for the tests is installed in <filename>${prefix}/share/installed-tests/gtk+</filename>.
-          To run the installed tests, gnome-desktop-testing-runner
-          can be used.
-        </para>
-      </formalpara>
     </refsect1>
 
 </refentry>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]