diff options
author | Leo Tenenbaum <pommicket@gmail.com> | 2018-08-20 21:12:06 -0400 |
---|---|---|
committer | Leo Tenenbaum <pommicket@gmail.com> | 2018-08-20 21:12:06 -0400 |
commit | 63e87c2d0c9d263f14c77b68f85c67d46ece82a9 (patch) | |
tree | 6260365cbf7d24f37d27669e8538227fcb72e243 /gtk+-mingw/share/gtk-doc/html/gtk3/gtk-building.html | |
parent | a4460f6d9453bbd7e584937686449cef3e19f052 (diff) |
Diffstat (limited to 'gtk+-mingw/share/gtk-doc/html/gtk3/gtk-building.html')
-rw-r--r-- | gtk+-mingw/share/gtk-doc/html/gtk3/gtk-building.html | 459 |
1 files changed, 0 insertions, 459 deletions
diff --git a/gtk+-mingw/share/gtk-doc/html/gtk3/gtk-building.html b/gtk+-mingw/share/gtk-doc/html/gtk3/gtk-building.html deleted file mode 100644 index 43d7067..0000000 --- a/gtk+-mingw/share/gtk-doc/html/gtk3/gtk-building.html +++ /dev/null @@ -1,459 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> -<title>Compiling the GTK+ libraries</title> -<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> -<link rel="home" href="index.html" title="GTK+ 3 Reference Manual"> -<link rel="up" href="gtk.html" title="Part I. GTK+ Overview"> -<link rel="prev" href="gtk-getting-started.html" title="Getting Started with GTK+"> -<link rel="next" href="gtk-compiling.html" title="Compiling GTK+ Applications"> -<meta name="generator" content="GTK-Doc V1.18.1 (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="2"><tr valign="middle"> -<td><a accesskey="p" href="gtk-getting-started.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> -<td><a accesskey="u" href="gtk.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> -<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> -<th width="100%" align="center">GTK+ 3 Reference Manual</th> -<td><a accesskey="n" href="gtk-compiling.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> -</tr></table> -<div class="refentry"> -<a name="gtk-building"></a><div class="titlepage"></div> -<div class="refnamediv"><table width="100%"><tr> -<td valign="top"> -<h2><span class="refentrytitle">Compiling the GTK+ libraries</span></h2> -<p>Compiling the GTK+ Libraries — -How to compile GTK+ itself -</p> -</td> -<td valign="top" align="right"></td> -</tr></table></div> -<div class="refsect1"> -<a name="overview"></a><h2>Building GTK+ on UNIX-like systems</h2> -<p> - 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. - </p> -<p> - Before we get into the details of how to compile GTK+, we should - mention that in many cases, binary packages of GTK+ prebuilt for - your operating system will be available, either from your - operating system vendor or from independent sources. If such a - set of packages is available, installing it will get you - programming with GTK+ much faster than building it yourself. In - fact, you may well already have GTK+ installed on your system - already. - </p> -<p> - On UNIX-like systems GTK+ 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. - </p> -<p> - 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 - <code class="literal">tar.bz2</code> or <code class="literal">tar.xz</code> file - which you unpack into a directory full of the source files as follows: - </p> -<pre class="programlisting"> - tar xvfj gtk+-3.2.0.tar.bz2 - tar xvfJ gtk+-3.2.0.tar.xz - </pre> -<p> - In the toplevel directory that is created, there will be - a shell script called <code class="filename">configure</code> which - you then run to take the template makefiles called - <code class="filename">Makefile.in</code> in the package and create - makefiles customized for your operating system. - The <code class="filename">configure</code> script can be passed - various command line arguments to determine how the package - is built and installed. The most commonly useful argument is - the <code class="systemitem">--prefix</code> argument which - determines where the package is installed. To install a package - in <code class="filename">/opt/gtk</code> you would run configure as: - </p> -<pre class="programlisting"> - ./configure --prefix=/opt/gtk - </pre> -<p> - A full list of options can be found by running - <code class="filename">configure</code> with the - <code class="systemitem">--help</code> argument. In general, the defaults are - right and should be trusted. After you've run - <code class="filename">configure</code>, you then run the - <span class="command"><strong>make</strong></span> command to build the package and install - it. - </p> -<pre class="programlisting"> - make - make install - </pre> -<p> - 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 <code class="literal">make install</code>. Also, if you are - installing in a system directory, on some systems (such as - Linux), you will need to run <span class="command"><strong>ldconfig</strong></span> after - <code class="literal">make install</code> so that the newly installed - libraries will be found. - </p> -<p> - Several environment variables are useful to pass to set before - running configure. <code class="envar">CPPFLAGS</code> contains options to - pass to the C compiler, and is used to tell the compiler where - to look for include files. The <code class="envar">LDFLAGS</code> variable - is used in a similar fashion for the linker. Finally the - <code class="envar">PKG_CONFIG_PATH</code> environment variable contains - a search path that <span class="command"><strong>pkg-config</strong></span> (see below) - uses when looking for for file describing how to compile - programs using different libraries. If you were installing GTK+ - and it's dependencies into <code class="filename">/opt/gtk</code>, you - might want to set these variables as: - </p> -<pre class="programlisting"> - CPPFLAGS="-I/opt/gtk/include" - LDFLAGS="-L/opt/gtk/lib" - PKG_CONFIG_PATH="/opt/gtk/lib/pkgconfig" - export CPPFLAGS LDFLAGS PKG_CONFIG_PATH - </pre> -<p> - You may also need to set the <code class="envar">LD_LIBRARY_PATH</code> - environment variable so the systems dynamic linker can find - the newly installed libraries, and the <code class="envar">PATH</code> - environment program so that utility binaries installed by - the various libraries will be found. - </p> -<pre class="programlisting"> - LD_LIBRARY_PATH="/opt/gtk/lib" - PATH="/opt/gtk/bin:$PATH" - export LD_LIBRARY_PATH PATH - </pre> -</div> -<div class="refsect1"> -<a name="dependencies"></a><h2>Dependencies</h2> -<p> - 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 <span class="application">autoconf</span>) - are <span class="command"><strong>pkg-config</strong></span> and GNU make. - </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> -<li class="listitem"><p> - <a class="ulink" href="http://pkg-config.freedesktop.org" target="_top">pkg-config</a> - is a tool for tracking the compilation flags needed for - libraries that are used by the GTK+ libraries. (For each - library, a small <code class="literal">.pc</code> text file is installed - in a standard location that contains the compilation flags - needed for that library along with version number information.) - </p></li> -<li class="listitem"><p> - The GTK+ makefiles will mostly work with different versions - of <span class="command"><strong>make</strong></span>, however, there tends to be - a few incompatibilities, so the GTK+ team recommends - installing <a class="ulink" href="http://www.gnu.org/software/make" target="_top">GNU - make</a> if you don't already have it on your system - and using it. (It may be called <span class="command"><strong>gmake</strong></span> - rather than <span class="command"><strong>make</strong></span>.) - </p></li> -</ul></div> -<p> - Some of the libraries that GTK+ depends on are maintained by - by the GTK+ team: GLib, GdkPixbuf, Pango, ATK and GObject Introspection. - Other libraries are maintained separately. - </p> -<div class="itemizedlist"><ul class="itemizedlist" type="disc"> -<li class="listitem"><p> - 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 <a class="ulink" href="http://ftp.gtk.org/pub/glib/" target="_top">GTK+ - FTP site</a> or - <a class="ulink" href="http://download.gnome.org/sources/glib/" target="_top">here</a>. - </p></li> -<li class="listitem"><p> - The <a class="ulink" href="http://git.gnome.org/browse/gdk-pixbuf/" target="_top">GdkPixbuf library</a> - provides facilities for loading images in a variety of file formats. - It is available - <a class="ulink" href="http://download.gnome.org/sources/gdk-pixbuf/" target="_top">here</a>. - </p></li> -<li class="listitem"><p> - <a class="ulink" href="http://www.pango.org" target="_top">Pango</a> is a library - for internationalized text handling. It is available - <a class="ulink" href="http://download.gnome.org/sources/pango/" target="_top">here</a>. - </p></li> -<li class="listitem"><p> - ATK is the Accessibility Toolkit. It provides a set of generic - interfaces allowing accessibility technologies such as - screen readers to interact with a graphical user interface. - It is available - <a class="ulink" href="http://download.gnome.org/sources/atk/" target="_top">here</a>. - </p></li> -<li class="listitem"><p> - <a class="ulink" href="http://live.gnome.org/GObjectIntrospection" target="_top">Gobject Introspection</a> - is a framework for making introspection data available to - language bindings. It is available - <a class="ulink" href="http://download.gnome.org/sources/gobject-introspection/" target="_top">here</a>. - </p></li> -</ul></div> -<div class="itemizedlist"> -<p class="title"><b>External dependencies</b></p> -<ul class="itemizedlist" type="disc"> -<li class="listitem"><p> - The <a class="ulink" href="http://www.gnu.org/software/libiconv/" target="_top">GNU - libiconv library</a> is needed to build GLib if your - system doesn't have the <code class="function">iconv()</code> - function for doing conversion between character - encodings. Most modern systems should have - <code class="function">iconv()</code>. - </p></li> -<li class="listitem"><p> - The libintl library from the <a class="ulink" href="http://www.gnu.org/software/gettext/" target="_top">GNU gettext - package</a> is needed if your system doesn't have the - <code class="function">gettext()</code> functionality for handling - message translation databases. - </p></li> -<li class="listitem"><p> - The libraries from the X window system are needed to build - Pango and GTK+. You should already have these installed on - your system, but it's possible that you'll need to install - the development environment for these libraries that your - operating system vendor provides. - </p></li> -<li class="listitem"><p> - The <a class="ulink" href="http://www.fontconfig.org" target="_top">fontconfig</a> - library provides Pango with a standard way of locating - fonts and matching them against font names. - </p></li> -<li class="listitem"><p> - <a class="ulink" href="http://www.cairographics.org" target="_top">Cairo</a> - is a graphics library that supports vector graphics and image - compositing. Both Pango and GTK+ use cairo for all of their - drawing. - </p></li> -<li class="listitem"><p> - The <a class="ulink" href="http://www.freedesktop.org/wiki/Software/shared-mime-info" target="_top">shared-mime-info</a> - package is not a hard dependency of GTK+, but it contains definitions - for mime types that are used by GIO and, indirectly, by GTK+. - gdk-pixbuf will use GIO for mime type detection if possible. For this - to work, shared-mime-info needs to be installed and - <code class="envar">XDG_DATA_DIRS</code> set accordingly at configure time. - Otherwise, gdk-pixbuf falls back to its built-in mime type detection. - </p></li> -</ul> -</div> -</div> -<div class="refsect1"> -<a name="building"></a><h2>Building and testing GTK+</h2> -<p> - First make sure that you have the necessary external - dependencies installed: <span class="command"><strong>pkg-config</strong></span>, GNU make, - 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 <span class="command"><strong>pkg-config</strong></span>. - </p> -<p> - Then build and install the GTK+ libraries in the order: - GLib, Pango, ATK, then GTK+. For each library, follow the - steps of <code class="literal">configure</code>, <code class="literal">make</code>, - <code class="literal">make install</code> mentioned above. If you're - lucky, this will all go smoothly, and you'll be ready to - <a class="link" href="gtk-compiling.html" title="Compiling GTK+ Applications">start compiling your own GTK+ - applications</a>. You can test your GTK+ installation - by running the <span class="command"><strong>gtk3-demo</strong></span> program that - GTK+ installs. - </p> -<p> - If one of the <code class="filename">configure</code> scripts fails or running - <span class="command"><strong>make</strong></span> fails, look closely at the error - messages printed; these will often provide useful information - as to what went wrong. When <code class="filename">configure</code> - fails, extra information, such as errors that a test compilation - ran into, is found in the file <code class="filename">config.log</code>. - 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. - See <a class="xref" href="gtk-resources.html" title="Mailing lists and bug reports"><span class="refentrytitle">Mailing lists and bug reports</span>(3)</a> for more information. - </p> -</div> -<div class="refsect1"> -<a name="extra-configuration-options"></a><h2>Extra Configuration Options</h2> -<p> - In addition to the normal options, the - <span class="command"><strong>configure</strong></span> 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.) - - </p> -<div class="cmdsynopsis"><p><code class="command">configure</code> <br> [[--disable-modules] | [--enable-modules]]<br> [[--with-included-immodules=MODULE1,MODULE2,...]]<br> [[--enable-debug=[no/minimum/yes]]]<br> [[--disable-Bsymbolic] | [--enable-Bsymbolic]]<br> [[--disable-xkb] | [--enable-xkb]]<br> [[--disable-xinerama] | [--enable-xinerama]]<br> [[--disable-gtk-doc] | [--enable-gtk-doc]]<br> [[--disable-cups] | [--enable-cups]]<br> [[--disable-papi] | [--enable-papi]]<br> [[--enable-xinput] | [--disable-xinput]]<br> [[--enable-packagekit] | [--disable-packagekit]]<br> [[--enable-x11-backend] | [--disable-x11-backend] | [--enable-win32-backend] | [--disable-win32-backend] | [--enable-quartz-backend] | [--disable-quartz-backend]]<br> [[--enable-introspection=[no/auto/yes]]]<br> [[--enable-gtk2-dependency] | [--disable-gtk2-dependency]]</p></div> -<p> - </p> -<p><b><code class="systemitem">--disable-modules</code> and - <code class="systemitem">--enable-modules</code>. </b> - Normally GTK+ will try to build the input method modules - as little shared libraries that are loaded on demand. - The <code class="systemitem">--disable-modules</code> argument - 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 <code class="systemitem">--disable-modules</code> nor - <code class="systemitem">--enable-modules</code> is specified, - then the <span class="command"><strong>configure</strong></span> script will try to - auto-detect whether shared modules work on your system. - </p> -<p><b><code class="systemitem">--with-included-immodules</code>. </b> - This option allows you to specify which input method modules you - want to include directly into the GTK+ shared library, as opposed - to building them as loadable modules. - </p> -<p><b><code class="systemitem">--enable-debug</code>. </b> - 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 - <a class="link" href="gtk-running.html#GTK-Debug-Options" title="GTK_DEBUG">runtime debugging</a>. - 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 - <code class="option">--enable-debug=no</code> should <span class="emphasis"><em>not</em></span> - be used for stable releases of GTK+. - </p> -<p><b><code class="systemitem">--disable-Bsymbolic</code> and - <code class="systemitem">--enable-Bsymbolic</code>. </b> - The option <code class="systemitem">--disable-Bsymbolic</code> - turns off the use of the -Bsymbolic-functions linker flag. - This is only necessary if you want to override GTK+ functions - by using <code class="envar">LD_PRELOAD</code>. - </p> -<p><b><code class="systemitem">--enable-explicit-deps</code> and - <code class="systemitem">--disable-explicit-deps</code>. </b> - If <code class="systemitem">--enable-explicit-deps</code> is - specified then GTK+ will write the full set of libraries - that GTK+ depends upon into its <code class="literal">.pc</code> 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 <code class="systemitem">--enable-static</code> to force - building of static libraries, then explicit dependencies - will be written since library dependencies don't work - for static libraries.) Specifying - <code class="systemitem">--enable-explicit-deps</code> or - <code class="systemitem">--enable-static</code> can cause - compatibility - problems when libraries that GTK+ depends upon change - their versions, and should be avoided if possible. - </p> -<p><b><code class="systemitem">--disable-xkb</code> and - <code class="systemitem">--enable-xkb</code>. </b> - By default the <span class="command"><strong>configure</strong></span> 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. - </p> -<p><b><code class="systemitem">--disable-xinerama</code> and - <code class="systemitem">--enable-xinerama</code>. </b> - By default the <span class="command"><strong>configure</strong></span> 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. - </p> -<p><b><code class="systemitem">--disable-xinput</code> and - <code class="systemitem">--enable-xinput</code>. </b> - 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. - </p> -<p><b><code class="systemitem">--disable-gtk-doc</code> and - <code class="systemitem">--enable-gtk-doc</code>. </b> - The <span class="application">gtk-doc</span> package is - used to generate the reference documentation included - with GTK+. By default support for <span class="application">gtk-doc</span> - is disabled because it requires various extra dependencies - to be installed. If you have - <span class="application">gtk-doc</span> installed and - are modifying GTK+, you may want to enable - <span class="application">gtk-doc</span> support by passing - in <code class="systemitem">--enable-gtk-doc</code>. If not - enabled, pre-generated HTML files distributed with GTK+ - will be installed. - </p> -<p><b><code class="systemitem">--disable-cups</code> and - <code class="systemitem">--enable-cups</code>. </b> - By default the <span class="command"><strong>configure</strong></span> 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. - </p> -<p><b><code class="systemitem">--disable-papi</code> and - <code class="systemitem">--enable-papi</code>. </b> - By default the <span class="command"><strong>configure</strong></span> 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. - </p> -<p><b><code class="systemitem">--disable-packagekit</code> and - <code class="systemitem">--enable-packagekit</code>. </b> - By default the <span class="command"><strong>configure</strong></span> 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. - </p> -<p><b><code class="systemitem">--enable-x11-backend</code>, - <code class="systemitem">--disable-x11-backend</code>, - <code class="systemitem">--enable-win32-backend</code>, - <code class="systemitem">--disable-win32-backend</code>, - <code class="systemitem">--enable-quartz-backend</code>, - and <code class="systemitem">--disable-quartz-backend</code>. </b> - 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. - </p> -<p><b><code class="systemitem">--enable-introspection</code>. </b> - Build with or without introspection support. - The default is 'auto'. - </p> -<p><b><code class="systemitem">--enable-gtk2-dependency</code> or - <code class="systemitem">--disable-gtk2-dependency</code>. </b> - Whether to rely on an exiting gtk-update-icon-cache utility - instead of building our own. Distributions which are shipping - both GTK+ 2.x and GTK+ 3 may want to use this option to - avoid file conflicts between these packages. - The default is to build gtk-update-icon-cache. - </p> -</div> -</div> -<div class="footer"> -<hr> - Generated by GTK-Doc V1.18.1</div> -</body> -</html>
\ No newline at end of file |