]> Pileus Git - ~andy/gtk/blobdiff - docs/reference/gtk/compiling.sgml
Allow checking for GDK backends
[~andy/gtk] / docs / reference / gtk / compiling.sgml
index d5b89dea8550f27097eb638c6a556c5f3e483b50..6f593a0d60a6226223e7c5e935fbf8def02867b5 100644 (file)
@@ -1,4 +1,8 @@
-<refentry id="gtk-compiling" revision="4 Feb 2001">
+<?xml version="1.0"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+<refentry id="gtk-compiling">
 <refmeta>
 <refentrytitle>Compiling GTK+ Applications</refentrytitle>
 <manvolnum>3</manvolnum>
@@ -16,51 +20,82 @@ How to compile your GTK+ application
 <title>Compiling GTK+ Applications on UNIX</title>
 
 <para>
-To compile a GTK+ application, you need to tell the compiler where to 
+To compile a GTK+ application, you need to tell the compiler where to
 find the GTK+ header files and libraries. This is done with the
 <literal>pkg-config</literal> utility.
 </para>
 <para>
 The following interactive shell session demonstrates how
-<literal>pkg-config</literal> is used (the actual output on 
+<literal>pkg-config</literal> is used (the actual output on
 your system may be different):
 <programlisting>
-$ pkg-config --cflags gtk+-2.0
- -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/atk-1.0  
-$ pkg-config --libs gtk+-2.0
- -L/usr/lib -L/usr/X11R6/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -lXi -lgdk_pixbuf-2.0 -lm -lpangox -lpangoxft -lXft -lXrender -lXext -lX11 -lfreetype -lpango -latk -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
+$ pkg-config --cflags gtk+-3.0
+ -pthread -I/usr/include/gtk-3.0 -I/usr/lib64/gtk-3.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
+$ pkg-config --libs gtk+-3.0
+ -pthread -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
 </programlisting>
 </para>
 <para>
 The simplest way to compile a program is to use the "backticks"
 feature of the shell. If you enclose a command in backticks
 (<emphasis>not single quotes</emphasis>), then its output will be
-substituted into the command line before execution. So to compile 
+substituted into the command line before execution. So to compile
 a GTK+ Hello, World, you would type the following:
 <programlisting>
-$ cc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello
+$ cc `pkg-config --cflags --libs gtk+-3.0` hello.c -o hello
 </programlisting>
 </para>
 
 <para>
-If you want to make sure that your program doesn't use any deprecated 
+If you want to make sure that your program doesn't use any deprecated
 functions, you can define the preprocessor symbol GTK_DISABLE_DEPRECATED
 by using the command line option <literal>-DGTK_DISABLE_DEPRECATED=1</literal>.
-There are similar symbols GDK_DISABLE_DEPRECATED, 
+There are similar symbols GDK_DISABLE_DEPRECATED,
 GDK_PIXBUF_DISABLE_DEPRECATED and G_DISABLE_DEPRECATED for GDK, GdkPixbuf and
-GLib. 
+GLib.
 </para>
 
 <para>
-If you want to make sure that your program doesn't use any functions which 
+If you want to make sure that your program doesn't use any functions which
 may be problematic in a multihead setting, you can define the preprocessor
-symbol GDK_MULTIHEAD_SAFE by using the command line option 
+symbol GDK_MULTIHEAD_SAFE by using the command line option
 <literal>-DGTK_MULTIHEAD_SAFE=1</literal>.
 </para>
 
-</refsect1>
-</refentry>
-
+<para>
+Similarly, if you want to make sure that your program doesn't use any
+functions which may be problematic in a multidevice setting, you can
+define the preprocessor symbol GDK_MULTIDEVICE_SAFE by using the command
+line option <literal>-DGTK_MULTIDEVICE_SAFE=1</literal>.
+</para>
 
+  <refsect2>
+    <title>Useful autotools macros</title>
 
+    <para>
+      GTK+ provides various macros for easily checking version and backends
+      supported. The macros are
+      <variablelist>
+        <varlistentry>
+          <term>AM_PATH_GTK_3_0([minimum-version], [if-found], [if-not-found], [modules])</term>
+          <listitem>This macro should be used to check that GTK+ is installed
+          and available for compilation. The four arguments are optional, and
+          they are: <emphasis>minimum-version</emphasis>, the minimum version
+          of GTK+ required for compilation; <emphasis>if-found</emphasis>, the
+          action to perform if a valid version of GTK+ has been found;
+          <emphasis>if-not-found</emphasis>, the action to perform if a valid
+          version of GTK+ has not been found; <emphasis>modules</emphasis>, a
+          list of modules to be checked along with GTK+.</listitem>
+        </varlistentry>
+        <varlistentry>
+          <term>GTK_CHECK_BACKEND([backend-name], [if-found], [if-not-found])</term>
+          <listitem>This macro should be used to check if a specific backend
+          is supported by GTK+. The <emphasis>if-found</emphasis> and the
+          <emphasis>if-not-found</emphasis> arguments are optional.</listitem>
+        </varlistentry>
+      </variablelist>
+    </para>
+  </refsect2>
 
+</refsect1>
+</refentry>