1e01aa904Sopenharmony_ciTo compile libabigail, you first need to install its dependencies.  At
2e01aa904Sopenharmony_cithe moment the dependencies are the following Free Software packages:
3e01aa904Sopenharmony_ci
4e01aa904Sopenharmony_ci    elfutils
5e01aa904Sopenharmony_ci    libtool
6e01aa904Sopenharmony_ci    libxml2
7e01aa904Sopenharmony_ci
8e01aa904Sopenharmony_ciIf you are building from the Git repository, then you'd also need the
9e01aa904Sopenharmony_cifollowing packages:
10e01aa904Sopenharmony_ci
11e01aa904Sopenharmony_ci    autoconf
12e01aa904Sopenharmony_ci    automake
13e01aa904Sopenharmony_ci    pkg-config
14e01aa904Sopenharmony_ci
15e01aa904Sopenharmony_ciIf you want to build the documentation of libabigail, then you also
16e01aa904Sopenharmony_cineed these packages (and their dependencies):
17e01aa904Sopenharmony_ci
18e01aa904Sopenharmony_ci     doxygen
19e01aa904Sopenharmony_ci     python-sphinx
20e01aa904Sopenharmony_ci
21e01aa904Sopenharmony_ciNote that if you are installing these packages in a binary form
22e01aa904Sopenharmony_ciprovided by your distribution, then you probably need to install the
23e01aa904Sopenharmony_cidevelopment variant of those packages if the distribution has one.
24e01aa904Sopenharmony_ci
25e01aa904Sopenharmony_ciOnce you have installed the development packages of the dependencies,
26e01aa904Sopenharmony_cithere are two options for compiling libabigail, depending on the two
27e01aa904Sopenharmony_cikinds of source code packages you have: either you have the source
28e01aa904Sopenharmony_cicode from our Git source control management system, or you have a
29e01aa904Sopenharmony_cireleased tarball.
30e01aa904Sopenharmony_ci
31e01aa904Sopenharmony_ci* Getting and compiling libabigail from Git
32e01aa904Sopenharmony_ci===========================================
33e01aa904Sopenharmony_ci
34e01aa904Sopenharmony_ciTo get the source code from git, you have to type:
35e01aa904Sopenharmony_ci
36e01aa904Sopenharmony_ci    git clone git://sourceware.org/git/libabigail.git
37e01aa904Sopenharmony_ci
38e01aa904Sopenharmony_ciPlease note that to compile libabigail from its sources in this case,
39e01aa904Sopenharmony_ciyou need to have the 'autoconf' page installed on your machine.
40e01aa904Sopenharmony_ci
41e01aa904Sopenharmony_ciThen go to your local libabigail.git directory where the source code
42e01aa904Sopenharmony_ciyou've checked out lies and create a 'build' directory that will
43e01aa904Sopenharmony_cireceive the binaries resulting from the compilation:
44e01aa904Sopenharmony_ci
45e01aa904Sopenharmony_ci    cd libabigail.git
46e01aa904Sopenharmony_ci    mkdir build
47e01aa904Sopenharmony_ci
48e01aa904Sopenharmony_ciGenerate the relevant build-system-related information needed to
49e01aa904Sopenharmony_ciconfigure the package for compilation, by typing:
50e01aa904Sopenharmony_ci
51e01aa904Sopenharmony_ci    autoreconf -i
52e01aa904Sopenharmony_ci
53e01aa904Sopenharmony_ciThen configure the package:
54e01aa904Sopenharmony_ci
55e01aa904Sopenharmony_ci    cd build
56e01aa904Sopenharmony_ci    ../configure --prefix=<absolute-path-of-where-you-want-the-binaries-to-be-installed>
57e01aa904Sopenharmony_ci
58e01aa904Sopenharmony_ciThen build the package
59e01aa904Sopenharmony_ci
60e01aa904Sopenharmony_ci    make
61e01aa904Sopenharmony_ci
62e01aa904Sopenharmony_ciAnd then install its resulting binaries and documentation:
63e01aa904Sopenharmony_ci
64e01aa904Sopenharmony_ci    make install
65e01aa904Sopenharmony_ci
66e01aa904Sopenharmony_ci* Getting and compiling libabigail from released tarballs
67e01aa904Sopenharmony_ci=========================================================
68e01aa904Sopenharmony_ci
69e01aa904Sopenharmony_ciFirst, get a tarball from ftp://sourceware.org/pub/libabigail.
70e01aa904Sopenharmony_ci
71e01aa904Sopenharmony_ciThen untar it and go to the resulting source directory.
72e01aa904Sopenharmony_ci
73e01aa904Sopenharmony_ciThen create a build directory that is to receive the result of the
74e01aa904Sopenharmony_cicompilation and cd into it:
75e01aa904Sopenharmony_ci
76e01aa904Sopenharmony_ci    mkdir build
77e01aa904Sopenharmony_ci    cd build
78e01aa904Sopenharmony_ci
79e01aa904Sopenharmony_ciThen configure the package:
80e01aa904Sopenharmony_ci
81e01aa904Sopenharmony_ci    ../configure --prefix=<absolute-path-of-where-you-want-the-binaries-to-be-installed>
82e01aa904Sopenharmony_ci
83e01aa904Sopenharmony_ciThen compile it:
84e01aa904Sopenharmony_ci
85e01aa904Sopenharmony_ci    make
86e01aa904Sopenharmony_ci
87e01aa904Sopenharmony_ciThen install the resulting binaries
88e01aa904Sopenharmony_ci
89e01aa904Sopenharmony_ci    make install
90e01aa904Sopenharmony_ci
91e01aa904Sopenharmony_ci* Building the documentation of libabigail
92e01aa904Sopenharmony_ci==========================================
93e01aa904Sopenharmony_ci
94e01aa904Sopenharmony_ciTo build the documentation of libabigail, you need to install the
95e01aa904Sopenharmony_cipython-sphinx package prior to running configure.
96e01aa904Sopenharmony_ci
97e01aa904Sopenharmony_ciOnce you've done that, type:
98e01aa904Sopenharmony_ci
99e01aa904Sopenharmony_ci     make doc
100e01aa904Sopenharmony_ci
101e01aa904Sopenharmony_ciThis will generate the documentation in html, info and man format, in
102e01aa904Sopenharmony_cithe doc/ subdirectory of your build directory.
103e01aa904Sopenharmony_ci
104e01aa904Sopenharmony_ciIf you only want the html documentation (mainly the web site, apidoc and manuals) then just type:
105e01aa904Sopenharmony_ci
106e01aa904Sopenharmony_ci   make html-doc
107e01aa904Sopenharmony_ci
108e01aa904Sopenharmony_ciIf you only want to generate the man documentation, just type:
109e01aa904Sopenharmony_ci
110e01aa904Sopenharmony_ci   make man
111e01aa904Sopenharmony_ci
112e01aa904Sopenharmony_ciIf you only want to generate the info documentation, just type:
113e01aa904Sopenharmony_ci
114e01aa904Sopenharmony_ci   make info
115