1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Compiling the GObject Introspection package: GObject Introspection Reference Manual</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="index.html" title="GObject Introspection Reference Manual">
8 <link rel="up" href="overview.html" title="Part I. GObject-Introspection Overview">
9 <link rel="prev" href="overview.html" title="Part I. GObject-Introspection Overview">
10 <link rel="next" href="gi-programming.html" title="Writing introspected libraries">
11 <meta name="generator" content="GTK-Doc V1.25.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts"></td>
17 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
18 <td><a accesskey="u" href="overview.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
19 <td><a accesskey="p" href="overview.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
20 <td><a accesskey="n" href="gi-programming.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
22 <div class="refentry">
23 <a name="gi-building"></a><div class="titlepage"></div>
24 <div class="refnamediv"><table width="100%"><tr>
26 <h2><span class="refentrytitle">Compiling the GObject Introspection package</span></h2>
27 <p>Compiling the GObject Introspection Package — How to compile GObject Introspection itself</p>
29 <td class="gallery_image" valign="top" align="right"></td>
31 <div class="refsect1">
32 <a name="gi-buildtools"></a><h2>Building on UNIX</h2>
34 On UNIX, GObject Introspection uses the standard GNU build system,
35 using <span class="application">autoconf</span> for package
36 configuration and resolving portability issues,
37 <span class="application">automake</span> for building makefiles
38 that comply with the GNU Coding Standards, and
39 <span class="application">libtool</span> for building shared
40 libraries on multiple platforms. The normal sequence for
41 compiling and installing the GObject Introspection package is thus:
44 <div class="literallayout"><p><br>
45 <strong class="userinput"><code>./configure</code></strong><br>
46 <strong class="userinput"><code>make</code></strong><br>
47 <strong class="userinput"><code>make install</code></strong><br>
52 The standard options provided by <span class="application">GNU
53 autoconf</span> may be passed to the
54 <span class="command"><strong>configure</strong></span> script. Please see the
55 <span class="application">autoconf</span> documentation or run
56 <span class="command"><strong>./configure --help</strong></span> for information about
60 <div class="refsect1">
61 <a name="dependencies"></a><h2>Dependencies</h2>
63 Before you can compile GObject Introspection, you need to have
64 various other tools and libraries installed on your
65 system. The tools needed during the build process (as
66 differentiated from the basic build tools mentioned
67 <a class="link" href="gi-building.html#gi-buildtools" title="Building on UNIX">before</a> are:
69 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
70 <li class="listitem"><p>
71 <a class="ulink" href="http://www.freedesktop.org/software/pkgconfig/" target="_top">pkg-config</a>
72 is a tool for tracking the compilation flags needed for
73 libraries that are used by the GObjecct Introspection. (For each
74 library, a small <code class="literal">.pc</code> text file is
75 installed in a standard location that contains the compilation
76 flags needed for that library along with version number
79 <li class="listitem"><p>
80 The GObject-Introspection makefiles will mostly work with different
81 versions of <span class="command"><strong>make</strong></span>, however, there tends to be a
82 few incompatibilities, so the GObject-Introspection team recommends
83 installing <a class="ulink" href="http://www.gnu.org/software/make" target="_top">GNU
84 make</a> if you don't already have it on your system
85 and using it. (It may be called <span class="command"><strong>gmake</strong></span>
86 rather than <span class="command"><strong>make</strong></span>.)
90 GObject-Introspection depends on a number of libraries and tools
91 maintained under the umbrella of the GNOME project:
93 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
94 <li class="listitem"><p>
95 The GLib library provides core non-graphical functionality
96 such as high level data types, Unicode manipulation, and
97 an object and type system to C programs. It is available
98 from the <a class="ulink" href="ftp.gnome.org/pub/gnome/sources/glib" target="_top">GNOME
100 <a class="ulink" href="http://download.gnome.org/sources/glib/" target="_top">here</a>.
102 <li class="listitem"><p>
106 <div class="itemizedlist">
107 <p class="title"><b>External dependencies</b></p>
108 <ul class="itemizedlist" style="list-style-type: disc; ">
109 <li class="listitem"><p>
112 <li class="listitem"><p>
113 GObject Introspection has an option dependency on the
114 <a class="ulink" href="TODO" target="_top">libffi</a> library. When available,
117 <li class="listitem">
121 <a class="ulink" href="http://www.cairographics.org" target="_top">Cairo</a>
122 is a graphics library that supports vector graphics and image
123 compositing. When available, GObject Introspection uses
124 Cairo in its unit tests.
132 <div class="refsect1">
133 <a name="extra-configuration-options"></a><h2>Extra Configuration Options</h2>
135 In addition to the normal options, the
136 <span class="command"><strong>configure</strong></span> script in the GObject Introspection
137 package supports these additional arguments:
139 <p><b><code class="systemitem">--disable-Bsymbolic</code> and
140 <code class="systemitem">--enable-Bsymbolic</code>. </b>
141 By default, the GObject Introspection package uses the
142 -Bsymbolic-functions linker flag to avoid intra-library
143 PLT jumps. A side-effect of this is that it is no longer
144 possible to override internal uses of GObject Introspection
145 functions with <code class="envar">LD_PRELOAD</code>. Therefore, it may
146 make sense to turn this feature off in some situations.
147 The <code class="option">--disable-Bsymbolic</code> option allows
150 <p><b><code class="systemitem">--disable-gtk-doc</code> and
151 <code class="systemitem">--enable-gtk-doc</code>. </b>
152 By default the <span class="command"><strong>configure</strong></span> script will try
153 to auto-detect whether the
154 <span class="application">gtk-doc</span> package is installed.
155 If it is, then it will use it to extract and build the
156 documentation for the GObject Introspection package. These options
157 can be used to explicitly control whether
158 <span class="application">gtk-doc</span> should be
159 used or not. If it is not used, the distributed,
160 pre-generated HTML files will be installed instead of
161 building them on your machine.
163 <p><b><code class="systemitem">--disable-doctool</code> and
164 <code class="systemitem">--enable-doctool</code>. </b>
167 <p><b><code class="systemitem">--with-python</code>. </b>
168 Allows specifying the Python interpreter to use, either as an
169 absolute path, or as a program name. GObject Introspection can
170 be built with Python 2 (at least version 2.6) but does not yet
176 <hr>Generated by GTK-Doc V1.25.1</div>