Compiling the GObject Introspection packageCompiling the GObject Introspection PackageHow to compile GObject Introspection itselfBuilding on UNIX
On UNIX, GObject Introspection uses the standard GNU build system,
using autoconf for package
configuration and resolving portability issues,
automake for building makefiles
that comply with the GNU Coding Standards, and
libtool for building shared
libraries on multiple platforms. The normal sequence for
compiling and installing the GObject Introspection package is thus:
./configuremakemake install
The standard options provided by GNU
autoconf may be passed to the
configure script. Please see the
autoconf documentation or run
./configure --help for information about
the standard options.
Dependencies
Before you can compile GObject Introspection, you need to have
various other tools and libraries installed on your
system. The tools needed during the build process (as
differentiated from the basic build tools mentioned
before are:
pkg-config
is a tool for tracking the compilation flags needed for
libraries that are used by the GObjecct Introspection. (For each
library, a small .pc text file is
installed in a standard location that contains the compilation
flags needed for that library along with version number
information.)
The GObject-Introspection makefiles will mostly work with different
versions of make, however, there tends to be a
few incompatibilities, so the GObject-Introspection team recommends
installing GNU
make if you don't already have it on your system
and using it. (It may be called gmake
rather than make.)
GObject-Introspection depends on a number of libraries and tools
maintained under the umbrella of the GNOME project:
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 GNOME
FTP site or
here.
TODO: GTK-Doc
External dependencies
Python
GObject Introspection has an option dependency on the
libffi library. When available,
...
Cairo
is a graphics library that supports vector graphics and image
compositing. When available, GObject Introspection uses
Cairo in its unit tests.
Extra Configuration Options
In addition to the normal options, the
configure script in the GObject Introspection
package supports these additional arguments:
--disable-Bsymbolic and
--enable-Bsymbolic
By default, the GObject Introspection package uses the
-Bsymbolic-functions linker flag to avoid intra-library
PLT jumps. A side-effect of this is that it is no longer
possible to override internal uses of GObject Introspection
functions with LD_PRELOAD. Therefore, it may
make sense to turn this feature off in some situations.
The option allows
to do that.
--disable-gtk-doc and
--enable-gtk-doc
By default the configure script will try
to auto-detect whether the
gtk-doc package is installed.
If it is, then it will use it to extract and build the
documentation for the GObject Introspection package. These options
can be used to explicitly control whether
gtk-doc should be
used or not. If it is not used, the distributed,
pre-generated HTML files will be installed instead of
building them on your machine.
--disable-doctool and
--enable-doctool
TODO
--with-python
Allows specifying the Python interpreter to use, either as an
absolute path, or as a program name. GObject Introspection can
be built with Python 2 (at least version 2.6) but does not yet
support Python 3.